2014-07-17 28 views
5

Birden çok etki alanına hizmet vermesi gereken bir 2.0 sinyal sunucusuna sahibim .. Bu yüzden sunucumda CORS'i etkinleştirmem gerekiyor. Web sunucusu olarak kullanıcı iis7.5. Bu kod bir localhost projesini oluşturdu ve sunucu signalr bağlanmayı deneyin bu makalede http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-javascript-clientÇapraz etki alanı, signalr 2.0 ile çalışmaz

gelen kopya ve yapıştırılan olduğunu

public void Configuration(IAppBuilder app) 
     { 
     app.Map("/signalr", map => 
      { 
       // Setup the CORS middleware to run before SignalR. 
       // By default this will allow all origins. You can 
       // configure the set of origins and/or http verbs by 
       // providing a cors options with a different policy. 
       map.UseCors(CorsOptions.AllowAll); 
       var hubConfiguration = new HubConfiguration 
       { 
        // You can enable JSONP by uncommenting line below. 
        // JSONP requests are insecure but some older browsers (and some 
        // versions of IE) require JSONP to work cross domain 
        // EnableJSONP = true 
       }; 
       // Run the SignalR pipeline. We're not using MapSignalR 
       // since this branch already runs under the "/signalr" 
       // path. 
       map.RunSignalR(hubConfiguration); 
} 
} 

şöyle Projemin Startup yönteminde CORS'yi sağladı.

Ama ateş aşağıdaki hatayı alıyorum

Çapraz Kökeni İsteği Engellendi: Aynı Kökeni Politikası http://MyWebSite.com:8082/signalr/negotiate?connectionData=%5B%7B%22name%22%3A%22sahragostarhub%22%7D%5D&clientProtocol=1.3&_=1405622027746 Bu CORS'yi aynı etki alanına kaynak taşıyarak veya etkinleştirerek sabitlenebilir en uzak kaynak okuma izin vermez .

müzakere ve XMLHttpRequest http://MyWebSite.com:8082/signalr/negotiate?connectionData=%5B%7B%22name%22%3A%22sahragostarhub%22%7D%5D&clientProtocol=1.3&_=1405622032883 yükleyemiyor krom bu hata. İstenen kaynakta 'Erişim-Kontrol-İzin-Kökeni' başlığı yok. Kökeni '(Müşteri sitesi adresi)' bu nedenle benim web.config

<httpProtocol> 
     <customHeaders> 
     <clear /> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
     </customHeaders> 
    </httpProtocol> 

Bu değişiklik aynı zamanda yararsız olduğu için erişim

Ben de şu satırları ekleyin izin verilmez.

+0

Bu durumun size yardımcı olup olmayacağından emin değilsiniz, ancak "*" kullanarak açısal uygulamada da çalışmadı, tam etki alanı belirtmemiz gerekiyordu. – epitka

+0

Tek bildiğimiz, başlıkların doğru ayarlanmadığıdır. Başlıkları sorunuza ekleyebilir misiniz? –

+0

Sunucunuzun aslında göndermekte olduğu başlıkları incelemek için fiddler'ı kullanmanızı öneririm; bu olmadan, hepsi tahmin ediliyor –

cevap

5

yapılandırmalarınızda removing WebDAV modülü deneyin (bir süre önce bana yardım etti): kodunun altında Application_Start kullanımda

<configuration>    
    <system.webServer>     
     <modules> 
      <remove name="WebDAVModule" /> 
... 
1


benim problem Sonunda MapHubs

var hubConfiguration = new HubConfiguration(); 
hubConfiguration.EnableCrossDomain = true; 
RouteTable.Routes.MapHubs(hubConfiguration); 
+6

EnableCrossDomain, Sinyal 2'de değil. –

1

aşırı yük yöntemi kullanmak Çok fazla mücadele sonra çözüldü. Bir port numarası çatışması bu soruna neden oluyor gibi görünüyor. Sunucumdaki diğer web sitelerini durdurup diğer iis ekspres servislerini durduruyorum ve sonra iyi çalışıyor. Soruma dikkat ettiğin için teşekkür ederim.

3

Bugün bunu yaşadım ve biraz aradıktan sonra Microsoft.Owin.Cors paketini yüklemenin benim için sorunu çözdüğünü öğrendim.

Install-Package Microsoft.Owin.Cors 

Oluştur ve sayfayı yeniden:

Sadece Paket Yöneticisi konsolda aşağıdaki komutu çalıştırın.

İlgili konular