理論上這應該是一個相當常見的用例。負責SSL/TLS終止的逆向代理背後的.NET網絡服務器。SignalR 1.x在SSL/TLS終止的反向代理之後
但由於一些神祕的原因,這不適合我。我使用龐德反向代理。我在配置中有以下內容。
HeadRemove "X-Forwarded-Proto"
AddHeader "X-Forwarded-Proto: https"
鉻給了我一個「無法加載資源:服務器以403的狀態迴應(禁止訪問:SignalR跨域被禁用。)」。
在web.config我已經添加了以下到system.webServer
<httpProtocol>s
<customHeaders>
<add name="Access-Control-Allow-Origin" value="https://some.domain.fake" />
</customHeaders>
</httpProtocol>
我的理解是我不應該需要CORS,因爲我沒有做任何跨域請求。如果我使用非SSL uri,請注意一切正常。
以下錯誤似乎是相關的,但它們應該是固定的,並不完全相同,因爲我有問題。 Bug with same origin check behind reverse proxies/load balancers etc. Bug with same origin check behind reverse proxies/load balancers for SSL requests.
我一直在尋找好半天才找到解決的辦法,但我驚訝,有沒有更多的人有同樣的問題。
問題是:我該如何解決這個問題?
我的反向代理不添加任何內容。它所做的是刪除一個「X-Forwarded-Proto」,基本上是硬編碼https,因此IIS和SignalR(?)可以找出正確的Proto。 因爲必須使用MVC4/.NET 4.0,所以我在SignalR 1.x上不使用2.x.這意味着我無法使用Microsoft.Owin.Cors軟件包。 – Saab
https://github.com/SignalR/SignalR/issues/1379,這個bug有代碼可以幫助 – davidfowl