我有一个.net 4.0 Web应用程序托管在IIS7服务器上。IIS 7 URL重写规则不适用
看完这篇文章:http://learn.iis.net/page.aspx/496/iis-url-rewriting-and-aspnet-routing/关于从另一台服务器提供静态内容,这样cookies不会随每个静态文件的请求一起发送,我试过了,但没有取得太大的成功。
这是写在web.config文件中的一部分:
<system.webServer>
<rewrite>
<rules>
<rule name="images" stopProcessing="true">
<match url="^images/(.*)$" />
<action type="Rewrite" url="http://static-server.com/images/{R:1}" appendQueryString="true" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
利用所定义的这条规则,每一个环节在图像文件夹中的文件应该rewriten到静态服务器URL。但是这完全不起作用,现在图像文件夹中的每个图像都返回404未找到。任何想法是什么可能导致这种行为或不同的解决方案,如何从不同的服务器上的特定文件夹提供文件,而不必经过大量代码并更改所有链接以链接到静态服务器?
我也尝试使用重定向动作类型,而不是重写动作,这实际上工作,但它无视我试图服务于不同服务器上的文件的原因(这样请求发送给我动态内容服务器具有所有必需的cookie,并被重定向到静态服务器,这实际上比从动态内容服务器提供图像更差)。
我按照http://learn.iis.net/page.aspx/485/define-and-configure-an-application-request-routing-server-farm/逐步安装了'Application Request Routing'模块和http://learn.iis.net/page.aspx/484/configure-3-tier-deployment-architecture-using-application-request-routing/没有正面结果。只有那时我没有得到一个404,但500一个。也许配置ARR模块的方式有什么不对吗? – Atzoya 2010-11-09 14:10:47
什么是500错误(检查日志) – 2010-11-09 14:24:06
它肯定是ARR模块导致的问题,但我似乎不能配置它。已决定采用不同的方法(手动更改所需资源的一些路径),直到找到如何正确配置模块。当我发现是什么导致了这个问题时,我会用我所做的更新我的帖子。 – Atzoya 2010-11-11 16:02:07