如何在Windows Server 2022上配置SharePoint与Azure DevOps Server Express共存
核心冲突分析
两者共存失败的核心原因基本是IIS端口绑定冲突(默认都抢占443端口)、SSL证书绑定重复,或是SharePoint的IIS模块干扰了Azure DevOps站点的正常运行。
具体解决步骤
一、调整Azure DevOps的端口与证书配置
- 修改Azure DevOps公共URL端口,避开SharePoint的443端口
- 打开Azure DevOps Server管理控制台,找到你的服务器实例,右键选更改配置
- 进入应用层配置页,把公共URL的端口改成未被占用的数值,比如
4430 - 打开Windows防火墙,添加入站规则,允许TCP协议的4430端口通行
- 给Azure DevOps配置独立自签名证书
- 用PowerShell生成专属证书,CN和SharePoint的证书区分开(比如设为
devops.lab.local):New-SelfSignedCertificate -DnsName "devops.lab.local" -CertStoreLocation "cert:\LocalMachine\My" - 打开IIS管理器,找到Azure DevOps对应的站点(一般叫
Azure DevOps Server),把新证书绑定到4430端口 - 把生成的证书导入本地计算机的受信任根证书颁发机构,避免浏览器弹出安全警告
- 用PowerShell生成专属证书,CN和SharePoint的证书区分开(比如设为
二、隔离IIS站点与应用程序池
- 保证两者应用程序池用独立身份:SharePoint通常用域账户(如
SP_Farm),Azure DevOps默认用NT SERVICE\AzureDevOpsServer,不要混用,避免权限冲突 - 取消SharePoint模块对Azure DevOps站点的继承
- 在IIS管理器中选中Azure DevOps站点,右键选查看应用程序池,确认对应池
- 回到站点主页,点击模块,右侧操作栏选查看已继承的模块
- 找到SharePoint相关的冲突模块(比如
SPRequestModule),点击移除,只保留Azure DevOps需要的模块
三、验证SQL实例独立性
虽然已经分了两个实例,还是要确认:
- Azure DevOps配置时确实指向了专属SQL实例(比如
SQLSERVER\AZUREDEVOPS),而非SharePoint用的实例 - Azure DevOps的服务账户对专属SQL实例拥有
dbcreator和securityadmin权限
四、重启服务并验证
- 重启Azure DevOps和IIS服务:
net stop AzureDevOpsServer && net start AzureDevOpsServer iisreset - 访问Azure DevOps的新URL(比如
https://devops.lab.local:4430/DefaultCollection),确认能正常打开 - 如果还是有问题,查看日志定位错误:
- Azure DevOps日志路径:
C:\Program Files\Azure DevOps Server 2022\Application Tier\Web Services\logs - IIS日志路径:
C:\inetpub\logs\LogFiles
- Azure DevOps日志路径:
内容的提问来源于stack exchange,提问作者Nigel Mo
相关产品推荐
相关产品推荐

