TeamCity Nuget饲料通过IIS / ARR / URLRewrite

版本:

  • Windows Server 2008 R2 SP1
  • TeamCity 7.0.2
  • Tomcat 7.0.27
  • IIS 7.5
  • ARR 2.5
  • URL重写7.2.2

作为JavaEE WAR,TeamCity安装在预先存在的TomCat安装中。 IIS已成功设置为反向TeamCity的代理调用。 我的重写规则如下:

<rule name="TeamCity Redirect" stopProcessing="true"> <match url="^(TeamCity.*)" /> <action type="Rewrite" url="http://localhost:8080/{R:1}" logRewrittenUrl="true" /> </rule> 

我从远程主机login到TeamCity并使用/pipe理它没有任何问题。 但是,当启用内置的NuGet服务器时,我遇到了令人沮丧的问题。

尝试从任何远程主机代理通过IIS访问Nuget饲料给我一个HTTP 404错误。 404错误来自IIS。 当我从url中删除最后的path部分时,404错误来自Tomcat。

例:

  • 从任何主机http://proteus.pointloma.edu/TeamCity/guestAuth/app/nuget/v1/FeedService.svc提供IIS 404错误提供。
  • 从任何主机http://proteus.pointloma.edu/TeamCity/guestAuth/app/nuget/v1/给出一个TomCat 404错误。
  • 来自安装了TeamCity的服务器的http:// localhost:8080 / TeamCity / httpAuth / app / nuget / v1 / FeedService.svc可正确提供源。

所以,我有一个问题与IIS尊重与* .svc文件redirect,但对于我的生活,我无法弄清楚为什么,或者这是设置。

任何帮助是极大的赞赏。

似乎你不需要任何重写规则。 检查TeamCity服务器上下文path与公共服务器相同,即http://public.com/ contextPath和http:// localhost:8080 / contextPath

TeamCity使用请求URI来生成NuGet提要,所以你应该确保你的代理提供了HOST,X-Forwarded-Host,X-Forwarded-Server,X-Forwarded-For头。 您可以启用/检查tomcat的访问日志,查看哪些请求来自IIS到TeamCity。

请参阅http://blog.endjin.com/2010/11/a-step-by-step-guide-to-hosting-teamcity-in-iis-7/上的安装指&#x5357;

如果这不起作用,请将服务器日志附加到[email protected]

啊,张贴的权力。 问了这个问题之后,我决定看看我已经设置了一次的规则。

规则是在网站级别设置的。 我把它们移到了服务器层面,一切都像魅力一样。