2014-07-17 8 views
5

के साथ काम नहीं करता है मेरे पास एक सिग्नलर 2.0 सर्वर है जो एकाधिक डोमेन की सेवा कर सकता है .. इसलिए मेरे सर्वर में CORS को सक्षम करने की आवश्यकता है। मैं उपयोगकर्ता iis7.5 वेब सर्वर के रूप में। मैं इस प्रकारक्रॉस-डोमेन सिग्नलर 2.0

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); 
} 
} 

इस कोड को इस लेख http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-javascript-client

मैं एक स्थानीय होस्ट प्रोजेक्ट बनाया और सर्वर signalr कनेक्ट करने का प्रयास से कॉपी और चिपकाया है अपने प्रोजेक्ट की Startup विधि में CORS सक्षम होना चाहिए।

लेकिन मैं फ़ायरफ़ॉक्स में निम्न त्रुटि प्राप्त

पार उत्पत्ति अनुरोध अवरोधित: वही मूल नीति http://MyWebSite.com:8082/signalr/negotiate?connectionData=%5B%7B%22name%22%3A%22sahragostarhub%22%7D%5D&clientProtocol=1.3&_=1405622027746 यह एक ही डोमेन के लिए संसाधन जाने या CORS को सक्षम करने से ठीक किया जा सकता पर दूरस्थ संसाधन पढ़ने की अनुमति नहीं देता । बातचीत

और क्रोम में इस त्रुटि XMLHttpRequest http://MyWebSite.com:8082/signalr/negotiate?connectionData=%5B%7B%22name%22%3A%22sahragostarhub%22%7D%5D&clientProtocol=1.3&_=1405622032883 लोड नहीं कर सकता। अनुरोधित संसाधन पर 'पहुंच-नियंत्रण-अनुमति-उत्पत्ति' शीर्षलेख मौजूद नहीं है। उत्पत्ति '(मेरा ग्राहक साइट का पता)' इसलिए मेरी web.config

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

यह परिवर्तन भी बेकार था के लिए उपयोग

अनुमति नहीं है

मैं इसके अलावा निम्नलिखित पंक्तियाँ जोड़ें।

+0

सुनिश्चित नहीं है कि यह आपकी मदद करेगा, लेकिन "*" का उपयोग करके कोणीय अनुप्रयोग में या तो काम नहीं किया गया था, हमें सटीक डोमेन निर्दिष्ट करना था। – epitka

+0

हम सभी जानते हैं कि हेडर सही तरीके से सेट नहीं किए जा रहे हैं। क्या आप हेडर को अपने प्रश्न में जोड़ सकते हैं? –

+0

मैं सुझाव देता हूं कि आपके सर्वर वास्तव में भेजने वाले हेडर का निरीक्षण करने के लिए फिडलर का उपयोग करें; इसके बिना, यह सभी अनुमान है –

उत्तर

5

अपने विन्यास में removing WebDAV मॉड्यूल का प्रयास करें (मुझे मदद की कुछ समय पहले):

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

कोड नीचे अपना Application_Start उपयोग में पिछले मेरी समस्या पर MapHubs

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

सक्षमक्रॉसडोमेन सिग्नल 2 में नहीं है। –

1

का अधिभार विधि का उपयोग बहुत संघर्ष के बाद हल किया जाता है। ऐसा लगता है कि एक बंदरगाह संख्या संघर्ष इस समस्या का कारण बनता है। मैं अपने सर्वर पर अन्य वेबसाइट को रोकता हूं और किसी अन्य आईआईएस एक्सप्रेस सेवाओं को रोकता हूं और फिर यह ठीक काम करता है। मेरे प्रश्न पर आपका ध्यान देने के लिए धन्यवाद।

3

मैंने आज इसका अनुभव किया, और थोड़ा सा पोक करने के बाद, पाया कि माइक्रोसॉफ्ट.ऑविन.कर्स पैकेज को स्थापित करने से मेरे लिए समस्या हल हो गई है।

बस पैकेज प्रबंधक कंसोल में निम्नलिखित कमांड चलाएँ:

Install-Package Microsoft.Owin.Cors 

बिल्ड, और पृष्ठ पुनः लोड।

संबंधित मुद्दे