重写到外部域在Azure网站中不起作用

重写到外部域在Azure网站中不起作用,azure,rewrite,Azure,Rewrite,我在azure cloud的标准计划中有一个Asp.NET MVC测试网站。我正在尝试设置对外部域的重写。我遵循以下步骤: 我还在RouteConfig中设置了忽略规则,并在应用程序设置中添加了网站\u PRIVATE\u扩展。XDT转换的日志看起来成功,但响应是找不到的页面。重写URL步骤也在工作,因为我可以在跟踪文件中看到它。跟踪文件中的确切错误消息为: 模烯 IIS Web核心 通知 映射请求处理程序 HttpStatus 404 高温超导 找不到 HttpSubStatus 四, 错误代

我在azure cloud的标准计划中有一个Asp.NET MVC测试网站。我正在尝试设置对外部域的重写。我遵循以下步骤:

我还在RouteConfig中设置了忽略规则,并在应用程序设置中添加了网站\u PRIVATE\u扩展。XDT转换的日志看起来成功,但响应是找不到的页面。重写URL步骤也在工作,因为我可以在跟踪文件中看到它。跟踪文件中的确切错误消息为:

模烯 IIS Web核心

通知 映射请求处理程序

HttpStatus 404

高温超导 找不到

HttpSubStatus 四,

错误代码 文件名、目录名或卷标语法不正确。 (0x8007007b)

更新: 我现在可以确认重写到同一个域的工作。然而,重写到外部域的工作方式与当前网站主页的工作方式相同

我完全没有主意了。请分享你所拥有的最狂野的东西!
谢谢大家!

如果使用MVC,MVC路由器会截获所有请求,而ARR不会看到这些请求,因此不会转发,并导致HTTP 404–File not Found错误

通过添加以下内容,告诉MVC Routing不要使用您的代理来解决此问题:

routes.IgnoreRoute("proxy/{*pathInfo}"); 
到Global.asax

如果这没有帮助,那么从Azure站点诊断页面启用,将生成真正有用的信息


希望这能有所帮助。

不知何故,幸运的是我成功了。经过几个小时的阅读和尝试,我仔细阅读了Ruslan博客文章中的例子

<?xml version="1.0"?>  
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">  
<system.webServer>  
<proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="false"  
reverseRewriteHostInResponseHeaders="false" />  
</system.webServer>  
</configuration> 

请注意,它表示reverseRewriteHostInResponseHeaders=“false”。好吧,实现这一点让我的东西发挥作用


复制/粘贴编程也一样。遗憾的是,这是您应该如何设置它的实际示例。

谢谢您的回答。我已经按照你的建议做了。