端口附加到主机标头

时间:2017-07-25 20:43:20

标签: azure iis azure-web-app-service hostheaders

我正在运行一个旨在接受XML帖子的Azure Web应用程序。当我使用cURL发布到网址时,一切正常,但是,当使用Apache Camel / HTTP时,POST会导致400错误。当我查看日志文件时,唯一的区别是cs-host字段。对于cURL命令,值只是域(例如azurewebsites.net),但Apache POST附加端口80(例如azurewebsites.net:80)。我添加了一个重写规则,可以从调用中删除端口(下面的规则详细信息),但POST仍会导致400错误。我能找到的最近的相关帖子在这里:Including Port number in HTTP HOST header causes Service Unavailable error但不幸的是它看起来与Netscaler有关,而不是Azure Web App,并且该决议没有提供任何详细的指导..感谢任何输入!

这里是重写规则:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <location path="domain" xdt:Locator="Match(path)">
    <system.webServer>
      <rewrite xdt:Transform="InsertBefore(/configuration/location[(@path='domain')]/system.webServer/*[1])">
        <rules>
          <rule name="domainrule1" stopProcessing="true">
            <match url="domain.azurewebsites.net:80(.*)" />
            <action type="Redirect" url="http://domain.azurewebsites.net/{R:1}" />
          </rule>
        </rules>
      </rewrite>
    </system.webServer>
  </location>
  <location path="~1domain" xdt:Locator="Match(path)">
    <system.webServer>
      <rewrite>
        <rules>
          <rule name="domainrule2" stopProcessing="true" xdt:Transform="Insert">
            <match url="domain.azurewebsites.net:80(.*)" />
            <action type="Redirect" url="http://domain.azurewebsites.net/{R:1}" />
          </rule>
        </rules>
      </rewrite>
    </system.webServer>
  </location>
</configuration>

0 个答案:

没有答案