我正在尝试设置 Team Foundation Server 2010、Sharepoint Server 2010 和 Report Server 2008R2。很抱歉我的问题/难题太长了,但我真的不知道该从哪里找,所以我尽可能详细地描述,希望我说得通。
目标:由于开发人员可以在防火墙内部或外部,因此需要有一个 TFS 的单一 http 入口点,无论您在防火墙的哪一侧都可以工作,并且需要与 SharePoint 和 Report Server 的外部访问一起工作。这意味着我们在 DNS 中设置了它,因此 buildserver.mydomain.com:指向构建服务框,其中包含此帖子顶部列出的所有服务,特定服务由端口号定义/定位。除了构建服务器本身之外,这在每台机器内外都运行良好。所有服务都必须能够使用外部 URL 工作。
如果我使用位于防火墙后面的笔记本电脑上的 http:// buildserver.mydomain.com:4800/tfs(外部 URL),我就能按预期使用域凭据登录。如果其他开发人员从不在域上的家中指向相同的 URL,他们也能使用其域凭据登录。
但是,如果我直接在 buildserver 上使用外部 URL 从 (即 http:// buildserver.mydomain.com:4800) 本身调用 SharePoint、TFS 或 Reporting Server,系统会提示我输入用户名和密码。输入我的域凭据会导致再次提示我输入凭据。无论使用哪种凭据(我拥有域管理员的权限),系统都会提示三次,然后在第三次提示后将我引导到一个空白页,好像访问被拒绝了一样。页面上没有显示任何错误,事件查看器中也没有任何内容。
如果我从 buildserver 仅使用主机名(内部 URL),则系统会提示我输入一次凭据,然后它就可以正常工作。例如,http://buildserver:4800/tfs 可以从服务器本身运行。
对于任何需要身份验证的服务,其行为都是相同的。从框本身来看,Sharepoint Central Admin、SharePoint WebApp、TFS、TFS Web Access、Report Server 和 Report Manager 均无法使用外部 URL,但如果使用内部 URL 调用,则会成功。
因此,问题出现在配置所有服务以使其协同工作时。配置 TFS 的唯一方法是从服务器本地配置,这意味着我必须指向内部报告服务器 URL(分别为 http:// buildserver:4800/reports 和 reportServer,而不是 http:// buildserver.domainname.com:4800,因为它们需要这样),因为外部 URL 本身不起作用。如果我将 TFS 配置为使用 Report Server 的内部 URL,那么对于域外的任何人来说,创建团队项目或在 SharePoint 站点中为团队项目工作都会失败,因为他们的机器根本不知道 http:// buildserver:/reports 是谁,也不知道如何解析它们。
我已经为 Sharepoint 配置了备用访问映射,并设置了报告服务器来监听外部 URL。从服务器本身调用外部 URL 时,它们根本不起作用。
我希望这能让你理解。感谢你花时间阅读这篇冗长的求助请求。
答案1
一句话...环回
PlatinumDogs - Sharepoint 主机头和环回检查
IntelliAdmin - Windows 2003 sp1 中已禁用 Cname 共享
Microsoft 支持 - 当您浏览使用集成身份验证且托管在 IIS 5.1 或更高版本的网站时收到错误 401.1
并给予应得的赞誉... 我不是自己想到这个答案的。在另一个网站上,用户 zephyr_hex 向我推荐了这些网站。