Ошибка сервера Azure при добавлении порта к заголовку узла
Я использую веб-приложение Azure, предназначенное для приема сообщений XML. Когда я отправляю по URL с помощью cURL, все работает, однако, при использовании Apache Camel / HTTP, POST приводит к ошибке 400. Когда я смотрю на файлы журнала, единственное отличие - это поле cs-host. Для команд cURL значением является только домен (например, azurewebsites.net), однако POST Apache добавляет порт 80 (например, azurewebsites.net:80). Я добавил правило перезаписи, которое лишит порт вызова (подробности правила приведены ниже), но POST все равно приводит к ошибке 400. Ближайший связанный пост, который я смог найти, был здесь: Включение номера порта в заголовок HTTP HOST вызывает ошибку Service Unavailable, но, к сожалению, похоже, что она связана с 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>