2015-01-16 3 views
2

Я пытаюсь настроить ARR внутри Azure Website. У меня есть рабочая реализация на Azure VM, но я бы хотел перейти на сайт, поэтому мне не нужно активно управлять виртуальной машиной.ARR Обратный прокси на Azure Website удаляет заголовок ответа WebSockets 'Sec-WebSocket-Accept'

Проблема, которая возникает у меня, связана с запросом и ответом на соединение с WebSockets SignalR, который проходит через мой обратный прокси ARR.

Ответ на сервере перед прохождением через ARR через IIS Request Tracing:

Upgrade: Websocket 
Server: Microsoft-IIS/8.0 
X-Content-Type-Options: nosniff 
X-Powered-By: ASP.NET 
X-Powered-By: ARR/3.0 
Sec-WebSocket-Accept: IVoaaOhRLbaSxQzHV1TRkwHbtFc=** 
Connection: Upgrade 
X-FE-DATA: AppId:Unknown-StatusCode 
X-Powered-By: ASP.NET 
DWAS-Handler-Name: EXECUTE|101|0|0x0|CONFIG_SUCCESS|ApplicationRequestRoutingHandler|::1|\\100.68.100.59\volume-21-default\be0a77feeba577989612\3323291baecf417bb67a391f58af8a90\ 

Response глазами клиента:

HTTP/1.1 101 Switching Protocols 
Upgrade: Websocket 
Server: Microsoft-IIS/8.0 
X-Powered-By: ASP.NET 
X-Powered-By: ARR/3.0 
X-Powered-By: ASP.NET 
Connection: Upgrade 

Как вы можете видеть, заголовок Sec-WebSocket-Accept в настоящее время раздели из ответ. Это означает, что клиент не выполняет соединение и по умолчанию использует длительный опрос вместо протокола websockets.

Любая идея, почему этот заголовок удаляется? Используется ARR 3.0, который поддерживает встроенные веб-дескрипторы, а веб-камеры включены на панели конфигурации Azure Website.

+1

Я также столкнулся с этой проблемой, пытаясь запустить маршрутизатор WAMP в Azure. –

+1

Однако в моем случае HTTP-заголовок, который удаляется, является «Sec-WebSocket-Protocol:» –

+1

Я сообщил об этом Microsoft, они подтвердили эту проблему, но ETA для исправления пока нет. https://social.msdn.microsoft.com/Forums/en-US/d7f6bc70-a1c6-4d6c-ac00-ead09244d29f/secwebsocketprotocol-http-header-stripped-by-arr?forum=windowsazurewebsitespreview –

ответ

1

Вы указали флаг для сохраненияHostHeaders = "true" в конфигурации прокси?

<proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="true" reverseRewriteHostInResponseHeaders="true" />