2012-03-02 9 views
7

मैं एक लंबे कहानी कम करने की कोशिश करेंगे:SignalR नेट ग्राहक: शुरू नहीं कर सकते वेब अनुप्रयोग के भीतर से कनेक्शन अनुप्रयोग डोमेन

मैं में एक कोर विधानसभा से एक वेब अनुप्रयोग में एक केंद्र पर एक विधि कॉल करना चाहते हैं मेरा आवेदन। कारण यह है कि मेरे पास कई अनुप्रयोग हैं जो अंततः कोर और ट्रिगर घटनाओं में कॉल करते हैं (मोबाइल वेब, व्यवस्थापक साइट, एपीआई आदि सोचें)। मैं सिग्नलआर का उपयोग करते हुए घटनाओं की डेस्कटॉप साइट के उपयोगकर्ताओं को सूचित करना चाहता हूं।

इसे स्पाइक करने के लिए, मैंने एक 4-प्रोजेक्ट समाधान बनाया। हब प्रॉक्सी के साथ एक कोर परियोजना। हब के साथ एक वेब ऐप। हब के बिना एक और वेब ऐप। और अंत में एक कंसोल ऐप।

यदि मैं कंसोल ऐप से कोर में कॉल करता हूं, और प्रॉक्सी का उपयोग कर ग्राहकों को हब करने के लिए संदेश भेजने का प्रयास करता हूं, तो सबकुछ बढ़िया काम करता है।

var connection = new HubConnection("..."); 
var hub = connection.CreateProxy("Spike.Hub"); 
connection.Start().Wait(); 

नहीं होना SignalR.Client सामान है: हालांकि, अगर मैं कोर में फोन और वेब ऐप्स से प्रॉक्सी का उपयोग करने का प्रयास करें, निष्पादन connection.Start() करने के लिए कॉल पर लटका एक वेब ऐप के ऐप डोमेन के भीतर से उपयोग किया जाता है? यह कंसोल ऐप में अपेक्षित क्यों काम करता है, लेकिन वेब ऐप से नहीं?


अद्यतन: मैं SignalR स्रोत में मेरी कील झुका और जब वेब ऐप्स से चल रहा है, निष्पादन SignalR.Client.Connection की लाइन 130 पर लटका हुआ है। इस तरह के कनेक्शन के लिए _syncContext AspNetSynchronizationContext का एक उदाहरण है, और जब इसकी पोस्ट() विधि को कॉल करते हैं, तो सबकुछ बंद हो जाता है।

उत्तर

10

SignalR.Client में एक बग नहीं है और आप पाया यह मेरे लिए

+0

हुर्रे :): एस - GitHub मुद्दे में किसी भी चर्चा जारी रखेगा। https://github.com/SignalR/SignalR/issues/221#issuecomment-4300487। – spot

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