【问题标题】:Rewrite to external domain not working in Azure website重写到在 Azure 网站中不起作用的外部域
【发布时间】:2015-03-03 23:00:48
【问题描述】:

我在 Azure 云的标准计划中有一个 Asp.NET MVC 测试网站。我正在尝试设置对外部域的重写。我按照这里的步骤操作:http://ruslany.net/2014/05/using-azure-web-site-as-a-reverse-proxy/

我还在 RouteConfig 中设置了忽略规则,并在应用程序设置中添加了 WEBSITE_PRIVATE_EXTENSIONS。 XDT 转换的日志看起来成功,但响应是找不到页面。正如我在跟踪文件中看到的那样,重写 URL 步骤也可以正常工作。跟踪文件中的确切错误消息是:

模块名称 IIS Web 核心

通知 MAP_REQUEST_HANDLER

Http状态 404

HttpReason 没找到

HttpSubStatus 4

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

更新: 我现在可以确认重写到相同域的工作。但是,重写到外部域的工作方式是始终转到当前网站的主页。

我完全没有想法。请分享您可能拥有的最狂野! 谢谢!

【问题讨论】:

    标签: azure rewrite


    【解决方案1】:

    如果您使用 MVC,则 MVC 路由器会拦截所有请求,并且 ARR 看不到它们,因此不会转发并导致 HTTP 404 – 未找到文件错误。

    通过添加以下内容告诉 MVC 路由不要打扰您的代理来修复它:

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

    到 Global.asax

    如果这没有帮助,请从 Azure 站点诊断页面启用 failed Request Tracing,生成非常有用的信息。

    希望这会有所帮助。

    【讨论】:

    • 感谢您的回答。我已经按照你的建议做了。
    【解决方案2】:

    幸运的是,我能够完成这项工作。经过数小时的阅读和尝试不同的东西后,我仔细查看了 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"。好吧,使这成为现实使我的东西发挥作用。

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

    【讨论】:

      猜你喜欢
      • 2013-12-23
      • 2016-03-21
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 2019-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多