2015-01-16 99 views
2

我試圖在Azure網站中設置ARR。我在Azure虛擬機上有一個工作實現,但想遷移到一個網站,所以我不必主動管理虛擬機。Azure網站上的ARR反向代理移除WebSocket響應標頭'Sec-WebSocket-Accept'

我遇到的問題特定於SignalR WebSockets連接請求和通過我的ARR反向代理的響應。由客戶端所看到

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\ 

響應:

通過IIS請求跟蹤通過ARR才通過服務器響應

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,它具有本地websocket支持,並且在Azure網站配置面板中啓用了websockets。

+1

我也遇到了這個問題,試圖在Azure中運行WAMP路由器。 –

+1

但是在我的情況下,被剝離出來的HTTP頭是'Sec-WebSocket-Protocol:' –

+1

我向微軟報告了這個問題,他們承認這個問題,但沒有修復ETA。 https://social.msdn.microsoft.com/Forums/en-US/d7f6bc70-a1c6-4d6c-ac00-ead09244d29f/secwebsocketprotocol-http-header-stripped-by-arr?forum=windowsazurewebsitespreview –

回答

1

您是否在代理配置中指定了標記preserveHostHeaders =「true」?

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