我目前正在将(工作)网站迁移到 Windows Azure 云,但遇到 UrlRewrite 模块问题。问题是出站规则导致内部服务器错误 - 如果我禁用规则,站点将正确加载。
我检查了 Azure 服务器上模块的顺序,它与我的本地计算机和托管服务器完全相同。我在 web.config 中使用以下行禁用了静态压缩:
<urlCompression doStaticCompression="false" doDynamicCompression="true" dynamicCompressionBeforeCache="false" />
以下是导致问题的重写规则示例:
<rule name="cdn rewrite" preCondition="text only">
<match filterByTags="Img" pattern="^/Images/(.*)$" />
<action type="Rewrite" value="http://cdn.website.com/{R:0}" />
</rule>
我还定义了以下前提条件:
<preCondition name="text only">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/.+$" />
</preCondition>
不知道它是否相关,但该站点是在内部运行的 MVC4 和超小的 2008r2 实例(osFamily="2")。
我目前有一个使用应用程序请求路由的解决方法,但我宁愿重写 URL,因为我们不打算将 Azure CDN 用于生产站点。
有人设法让这个在 Azure 上工作吗?
编辑 - 更多信息:
实际错误(在萤火虫中报告)说“NetworkError:500 URL Rewrite Module Error. - http://website.cloudapp.net/ ”
事件查看器或与此问题相关的实际日志文件中的日志中没有任何内容。
实际上在输入时修复了它 - 见下文