当使用 https 协议通过互联网公开TFS实例时,我需要有关何时使用TFS网络扩展的具体指导。
背景:我使用rest api开发了 TFS 2015 Web扩展,并使用tfs-cli将其安装在我们的tfs集合中。
安装并启用扩展后,我加载此扩展名;它会抛出以下错误
“错误代码:500内部服务器错误。请求不受支持。 (50)”。
在分析过程中,我发现问题与我们通过http和https的TFS配置有关。
我遇到与FolderManagement和Team Calendar等 https 相关的其他第三方扩展程序时出现的错误。这些扩展在我们的TFS 2015实验室环境中运行良好,该环境仅通过域上的 http 公开。
*让我们以市场上可用的 FolderManagement 扩展为例。*
尝试1 - 之前的配置:
我们在TMG中注册了一个外部网址https://tfs.companyname.com/tfs
,它将所有流量路由到我们的内部TFS实例,说http://machinename:port/tfs
在TFS管理控制台中,通知网址设置为https://tfs.companyname.com/tfs
当我们在TFS网站中访问扩展时,它没有加载,在浏览器调试中我们遇到以下错误:
GET
https://tfs.companyname.com/tfs/_apis/public/gallery/publisher/ms-devlabs/extension/FolderManagement/1.1.10/assetbyname/main.html
“错误代码:500内部服务器错误。请求不受支持。 (50)”。
尝试2:
然后我在管理控制台中更改了TFS通知网址,指向内部实例http://machinename:port/tfs
现在,当我们使用http://machinename:port/tfs
访问我们的TFS时,所有扩展都开始正常工作了。
但是,当我们访问外部网址https://tfs.companyname.com/tfs
时,由于TMG将流量从安全(https)转发到不安全(http)并导致授权问题,因此扩展无效。
尝试3 - 当前配置:
在TFS服务器上,我们将https绑定(端口443)添加到“Team Foundation Server”网站并分配了有效证书。附注 - 证书是通配符*.companyname.com
,支持站点的公开dns条目。
在TFS管理控制台中,通知网址设置为https://tfs.companyname.com/tfs
和服务器网址也设置为https://tfs.companyname.com/tfs
外部网址https://tfs.companyname.com/tfs
正在通过443端口将流量路由到TFS服务器(计算机IP)。
现在,当我们在TFS网站中访问扩展时,它显示出与前面提到的相同的错误,即
GET
https://tfs.companyname.com/tfs/_apis/public/gallery/publisher/ms-devlabs/extension/FolderManagement/1.1.10/assetbyname/main.html
“错误代码:500内部服务器错误。请求不受支持。 (50)”。
鉴于当前配置,我得到的http和https都有相同的行为/错误。
问题:当所有配置都定位到通过http托管的TFS安装时,为什么扩展按预期工作,但是当通过https公开时,Web扩展的行为有所不同?
答案 0 :(得分:0)
我不得不说http和https都可以很好地使用相同的Web扩展配置是不可能的。在部署Web扩展程序之前,请尝试以下配置。
将部署配置为需要使用SSL的HTTPS(可选)
您可以要求使用与TFS应用程序层的所有连接 使用SSL的HTTPS。这种额外的安全性是可选的,但建议使用。
要求SSL连接
1.在托管要配置的网站的服务器上,选择“开始”,选择“管理工具”,然后选择“Internet” 信息服务(IIS)管理器。
2.按照您的IIS版本执行相应的步骤:
对于使用IIS 7.0的部署:
a。展开ComputerName,展开“网站”,然后选择该网站 你要配置的。
b。在该网站的主页上,选择“SSL设置”。
c。在“SSL设置”窗格中,选中“要求SSL”复选框。
(可选)选中“要求128位SSL”复选框。
d。在客户端证书中,选择“忽略”,“接受”或“要求”,具体取决于 关于部署的安全要求。
e。在“操作”中,选择“应用”。
f。对于您要求的每个网站,请重复这些步骤 SSL
有关使用TFS的HTTPS的更多详细信息,请参阅此MSDN链接:Set up HTTPS with Secure Sockets Layer (SSL) for Team Foundation Server
答案 1 :(得分:0)
原来这是与TMG相关的问题。 TFS配置是正确的。 非常感谢所有帮助过的人。这个问题现在可以关闭了。
答案 2 :(得分:0)
我相信这是产品中的一个错误。由于一些奇怪的原因(不良做法)谁决定写这些图像网址不尊重当前的浏览器网址。如果他们只是写了一个相对网址,这将非常简单。
在我的情况下,有一个公开的https网址https://team.devscope.net/tfs/_api ...和一个内部的https:// *:8080 / tfs,但该产品刚刚发明了一个名为http://team.devscope.net:8080/tfs/_apis的无保护/新网址