设为首页 收藏本站
查看: 1043|回复: 0

[经验分享] SharePoint Server 2013开发之旅(三):为SharePoint Server配置App开发、部署、管理环境

[复制链接]

尚未签到

发表于 2015-9-25 07:43:28 | 显示全部楼层 |阅读模式
  上一篇我讲解了如何利用微软提供的Office 365开发人员网站,进行在线的SharePoint App开发,这当然是不错的一个选择,因为你可以快速地进行开发和调试。(仅仅针对App开发而言)。但是,你可能会想到一个问题,假设我们在企业中已经有了一组SharePoint Server服务器,那么如何让他们也能用来进行App开发、部署并且最终用来统一管理所有的App呢?这一篇文章我们将揭开这个面纱。
  关于这个配置过程,微软官方也有一个文档(http://msdn.microsoft.com/en-us/library/fp179923(office.15).aspx),我下面总结的方法可能与官方的文档有些不一样。但这是我验证下来有效的方法。但我建议你也将官方的文档看一遍。
  
第一步:配置泛域名解析,并且禁用回环检查
  为什么要配置这个域名解析呢?上一篇我已经提到了App最终使用的时候,有一个很特殊的地址,例如

  https://xizhangdev-ece5e3f97ecd25.sharepoint.com/SharePointAppSample/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fxizhangdev%2Esharepoint%2Ecom&SPLanguage=zh%2DCN&SPClientTag=0&SPProductNumber=16%2E0%2E2120%2E1226&SPAppWebUrl=https%3A%2F%2Fxizhangdev%2Dece5e3f97ecd25%2Esharepoint%2Ecom%2FSharePointAppSample
  也就是说,所有的App,其实都是共用了一个域名 sharepoint.com。但有一个特殊的前缀(你的站点标识,一个App序列号),并且有一个特殊的后缀(App的名称)。
  如果我们希望配置自己的服务器也能实现这样的功能,就需要用到一个泛域名解析的功能。也就是说,不管App具体的序列号是多少,我们都解析到同一个地址。
  要实现这样的功能,请登录到你配置的DNS服务器,在正向查找区域中添加一个主机名
DSC0000.png
  用*(星号)作为主机名,IP地址写127.0.0.1,就是让它指向本地服务器。
DSC0001.png
  如何验证这个功能是否生效呢?很简单,我们开一个命令行提示符。随便ping两个域名,分别用apps和my作为前缀,我们看到都能ping通,而且他们返回的地址都是127.0.0.1
DSC0002.png
  
  修改两个注册表选项,来禁止环回检查
  1. 启动注册表编辑器 (Regedt32.exe)。
  2. 在注册表中找到并单击以下项:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters
  3. 在编辑菜单上,单击添加数值,然后添加以下注册表值:
数值名称:DisableStrictNameChecking
数据类型:REG_DWORD
基数:十进制
数值: 1
  
  2. 在注册表编辑器中,找到并单击下面的注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. 右键单击“Lsa”,指向“新建”,然后单击“DWORD 值”。
  4. 键入 DisableLoopbackCheck,然后按 Enter。
  5. 右键单击 DisableLoopbackCheck,然后单击“修改”
  6. 在“数值数据”框中,键入 1,然后单击“确定”。
  7. 退出注册表编辑器,然后重新启动您的计算机
  第二步:配置SharePoint服务和服务应用程序
  请将如下的代码保存为一个ps1文件,例如命令为enableappscript.ps1,放在c:\scripts目录中,红色字体部分可能需要修改为你的域名
$appManagementService = Get-SPServiceInstance | where {$_.TypeName -like 'App Management Service'}
if($appManagementService.Status -ne 'Online') {
Write-Host 'Starting App Management Service'
Start-SPServiceInstance $appManagementService | Out-Null
}
else{
Write-Host 'App Management Service was already started'
}
# wait for App Management Service to start”
while ($service.Status -ne 'Online') {
# delay 5 seconds then check to see if service has started sleep 5
$service = Get-SPServiceInstance | where {$_.TypeName -like 'App Management Service'}
}
$subscriptionSettingsService = Get-SPServiceInstance | where {$_.TypeName -like 'Microsoft SharePoint Foundation Subscription Settings Service'}
if($subscriptionSettingsService.Status -ne 'Online') {
Write-Host 'Starting Subscription Settings Service'
Start-SPServiceInstance $subscriptionSettingsService | Out-Null
}
else{
Write-Host 'Subscription Settings Service was already started'
}
while ($service.Status -ne 'Online') {
# delay 5 seconds then check to see if service has started sleep 5
$service = Get-SPServiceInstance | where {$_.TypeName -like 'Microsoft SharePoint Foundation Subscription Settings Service'}
}
$appManagemetnServiceApplicationName = 'App Management Service'
$appManagementServiceApplication = Get-SPServiceApplication | where {$_.Name -eq $appManagemetnServiceApplicationName}
# create an instance App Management Service Application and proxy if they do not exist
if($appManagementServiceApplication -eq $null) {
Write-Host 'Creating App Management Service Application'
$pool = Get-SPServiceApplicationPool 'SharePoint Web Services Default'
$appManagementServiceDB= 'Sharepoint_AppManagementServiceDB'
$appManagementServiceApplication = New-SPAppManagementServiceApplication `
-ApplicationPool $pool `
-Name $appManagemetnServiceApplicationName `
-DatabaseName $appManagementServiceDB
Write-Host 'Creating App Management Service Application Proxy'
$appManagementServicApplicationProxy = New-SPAppManagementServiceApplicationProxy `
-ServiceApplication $appManagementServiceApplication
}
else{
Write-Host 'App Management Service Application already exist'
}
$subscriptionSettingsServiceApplicationName = 'Subscription Settings Service Application'
$subscriptionSettingsServiceApplication = Get-SPServiceApplication | where {$_.Name -eq $subscriptionSettingsServiceApplicationName}
# create an instance Subscription Service Application and proxy if they do not exist
if($subscriptionSettingsServiceApplication -eq $null) {
Write-Host 'Creating Subscription Settings Service Application'
$pool = Get-SPServiceApplicationPool 'SharePoint Web Services Default'
$subscriptionSettingsServiceDB= 'Sharepoint_SiteSubscriptionSettingsServiceDB'
$subscriptionSettingsServiceApplication = New-SPSubscriptionSettingsServiceApplication `
-ApplicationPool $pool `
-Name $subscriptionSettingsServiceApplicationName `
-DatabaseName $subscriptionSettingsServiceDB
Write-Host 'Creating Subscription Settings Service Application Proxy'
$subscriptionSettingsServicApplicationProxy = New-SPSubscriptionSettingsServiceApplicationProxy `
-ServiceApplication $subscriptionSettingsServiceApplication
}
else{
Write-Host 'Subscription Settings Service Application already exist'
}
Set-SPAppDomain 'apps.corp.contoso.com' -Confirm:$false
Set-SPAppSiteSubscriptionName -Name 'app' -Confirm:$false

DSC0003.png
DSC0004.png
  上面的代码其实说复杂也不复杂,它会检查两个服务的状态,如果没有启动,则会启动他们


  • App Management Service
  • Microsoft SharePoint Foundation Subscription Settings Service
DSC0005.png
  然后,它会检查是否存在下面两个服务应用程序,如果不存在,则会创建并且启动他们


  • App Management Service Application
  • Subscription Settings Service Application
DSC0006.png
  然后,它会注册一个域名(apps.corp.contoso.com)和地址前缀(app)。
DSC0007.png

第三步:创建App Catalog
  接下来我们要做的是创建一个所谓的App Catalog,这个相当于是一个存储App的具体位置。
DSC0008.png
DSC0009.png
DSC00010.png
DSC00011.png
  
  经过上面三个步骤,我们就能通过Visual Studio来测试开发一个简单的App,并且看看部署起来的效果了
DSC00012.png
DSC00013.png
  默认生成的项目结构中有一些脚本文件,CSS文件,并且还有一个aspx页面。【备注:具体App的开发细节以后会有文章介绍,这里不做展开】
DSC00014.png
  我这里不准备对其做任何修改,直接选择解决方案,然后选择“部署解决方案”即可,如果不出意外的话,你应该能部署成功。
DSC00015.png
  【备注】如果你直接使用安装SharePoint Farm的账号打开Visual Studio ,创建App项目并且部署,你会发现其实是部署不了的,错误消息如下。
DSC00016.png
  解决方法就是再创建一个账号,用这个账号登陆来做开发,并且将这个账号添加为Farm Administrator,默认网站集的Site collection administrator,并且在数据库服务器中,将其添加为sysadmin这个角色。
  
  如果完成了部署,你可以打开默认的站点,在左侧导航区域会出现刚刚你建立和部署的App的链接。点击这个链接,可以运行这个App(其实是打开了其中的Default.aspx页面)
DSC00017.png
  【备注】实际上,你如果第一次打开的话,可能会要求你输入用户名和密码。我是通过设置了IE选项,而避免了每次输入用户名和密码的。
  首先,我将*.apps.corp.contoso.com添加到了信任站点
DSC00018.png
  然后,我设置了信任站点的安全选项,让它自动地以当前用户的身份登陆。
DSC00019.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118350-1-1.html 上篇帖子: Sharepoint简介 下篇帖子: SharePoint问题清单
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表