2012-05-31 59 views
0

我目前正在将(工作)网站迁移到Windows Azure云,但遇到UrlRewrite模块问题。问题是出站规则导致内部服务器错误 - 如果禁用规则,站点会正确加载。Azure Web角色和出站URL重写会导致500错误

我检查了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工作?

编辑 - 一些更多的信息:

实际的错误(在Firebug报道)说“NetworkError:500 URL重写模块错误 - http://website.cloudapp.net/

中没有任何日志或者在事件查看器或与此问题有关的实际日志文件。

其实它固定在打字了这一点 - 见下文

+0

你能指定你得到(看看事件查看器通过RDP或看诊断日志)实际的错误?内部服务器错误可能是任何错误。 –

+1

您是否完全阅读了Ruslan的答案:http://forums.iis.net/t/1165899.aspx还有一个注册表项必须更改,以及重新排序模块。不只是禁用静态压缩和dynamicbeforecache。坦率地说,我还没有尝试过那种完整的解决方案,但似乎它不会工作,除非Ruslan提到的所有观点都不满意。 – astaykov

回答

0

正如astaykov指出,有可能还需要修改这个工作注册表项。

我将其添加在这里为后代,但我已经想象它放在这里:

reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Rewrite /v LogRewrittenUrlEnabled /t REG_DWORD /d 0 

您必须发出iisreset命令或更改生效前重新启动服务器。

原帖:

http://forums.iis.net/p/1165899/1937454.aspx#1937454