2016-03-15 107 views
0

我在遇到允許SignalR持續連接的所有起源時遇到了麻煩。似乎,確定「UseCors」沒有效果。端點初始化程序(與涉及CORS設置)如下:
app.Map("/myendpoint", map => { map.UseCors(CorsOptions.AllowAll).RunSignalR<MyEndPoint>(); }); 用於SignalR持久連接的CORS

並嘗試建立在遠程機器上從一個js代碼連接仍然導致「否‘訪問控制允許來源’標頭呈現在請求的資源上「。我做錯了什麼,並且有辦法允許CROSS-ORIGIN請求嗎?

回答

0

在啓動

using System; 
using System.Threading.Tasks; 
using Microsoft.Owin; 
using Owin; 
using Microsoft.Owin.Cors; 

[assembly: OwinStartup(typeof(Werp.Wacc.Web.API.Startup))] 

namespace YourApplication.API 
{ 
public class Startup 
{ 
    /// <summary> 
    ///Configure Signal R 
    /// </summary> 
    public void Configuration(IAppBuilder app) 
    { 
     // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888 
     app.UseCors(CorsOptions.AllowAll); 
     // Any connection or hub wire up and configuration should go here 
     app.MapSignalR(); 
    } 


    } 

} 
+0

你應該* *編輯你的答案,而不是發佈一個新的。 –

+0

是的。我打算這樣做,現在我刪除了我的第一個答案。 –

+0

我發現了這個令人討厭的錯誤的原因,結果發現了一些完全不同的東西:該應用程序在具有非常有限權限的用戶的linux(單聲道)下運行。因此請求處理過程會崩潰,返回響應500並跳過添加CORS頭部到響應。簡而言之:請記住,當您遇到應用程序錯誤時,您也很可能會收到CORS錯誤,因爲應用程序將簡單地跳過添加任何必要的標頭。 – user2082616