की संपत्ति 'क्लाइंट' प्राप्त करने में असमर्थ मुझे मौजूदा वेब एप्लिकेशन में सिग्नलआर का उपयोग करने में समस्याएं आ रही हैं। मुझे javaruntime अपवाद प्राप्त हो रहा है "अपरिभाषित या शून्य संदर्भ का गुण 'क्लाइंट' प्राप्त करने में असमर्थ" क्योंकि जब मैं $ .conction ऑब्जेक्ट से अपना हब पुनर्प्राप्त करने का प्रयास करता हूं, तो यह शून्य हो रहा है।सिग्नलआर - अपरिभाषित या शून्य संदर्भ
मेरे कोड को पोस्ट करने से पहले, मैं कुछ पृष्ठभूमि और कुछ चीजों की आपूर्ति करना चाहता था जो मैंने पहले ही कोशिश की है: - यदि मैं स्थानीय रूप से प्रोजेक्ट चलाता हूं, तो सब कुछ ठीक काम करता है। यह केवल तब होता है जब मैं अपनी परियोजना को आईआईएस स्थान पर तैनात करता हूं जिसमें मुझे समस्याएं होती हैं। - मैंने सत्यापित किया है कि मेरा हब नाम सही ढंग से ऊंट काट रहा है। दोबारा, यह स्थानीय रूप से ठीक काम करता है, और आईआईएस में परियोजना को तैनात करने के बाद ही त्रुटि फेंकता है। - मैंने पुष्टि की है कि मेरी सभी जावास्क्रिप्ट सफलतापूर्वक लोड हो गई है। JQuery लाइब्रेरी केवल एक बार संदर्भित है, और ठीक लोड करता है। तो सिग्नलआर जावास्क्रिप्ट, और गतिशील रूप से निर्मित सिग्नल/हब्स करता है। - यदि मैं एक नई प्रोजेक्ट बनाता हूं, और मौजूदा वेब एप्लिकेशन के तहत एक वेब ऐप के रूप में चल रहे एक नए वेब एप्लिकेशन के समान कोड चलाता हूं, तो सब ठीक काम करता है (एक ही कोड का उपयोग किया जा रहा है, बस एक नई परियोजना में)।
किसी के पास कोई समस्या है कि समस्या क्या है?
हब कोड:
Imports Microsoft.AspNet.SignalR
Public Class TestHub
Inherits Hub
Public Sub Connect()
Try
Clients.Caller.onConnect(Context.ConnectionId)
Catch ex As Exception
LogMessage("ERROR Connecting to Hub", 0, 0, "ERROR")
End Try
End Sub
End Class
वेब पेज कोड:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.6.4.min.js"></script>
<!--Reference the SignalR library. -->
<script src="Scripts/jquery.signalR-1.1.3.js"></script>
<!--Reference the autogenerated SignalR hub script. -->
<script src="signalr/hubs"></script>
<script type="text/javascript">
$(function() {
// Declare a proxy to reference the hub.
var thub = $.connection.testHub;
registerClientMethods(thub);
// Start Hub
$.connection.hub.start().done(function() {
registerEvents(thub);
thub.server.connect();
alert('connected!');
});
});
function registerClientMethods(thub) {
thub.client.onConnect = function (id) {
$('#lblConnectionID').text(id);
}
}
function registerEvents() {
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblConnectionID" runat="server" />
</div>
</form>
</body>
</html>
Global.asax कोड:
Imports System.Web.Routing
Imports Microsoft.AspNet.SignalR
Public Class Global_asax
Inherits System.Web.HttpApplication
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the application is started
Try
' Register the default hubs route: ~/signalr/hubs
RouteTable.Routes.MapHubs()
Catch ex As Exception
LogMessage("ERROR initializing SignalR: " & ex.Message, 0, 0, "ERROR")
End Try
End Sub
...
तो अब, जब मैं अपने पेज SignalRTest.aspx करने के लिए जाना , लाइन thub.client.on कनेक्ट किया गया = ... एक जाव फेंकता है एस्क्रिप्ट त्रुटि: "अपरिभाषित या शून्य संदर्भ के गुण 'क्लाइंट' प्राप्त करने में असमर्थ"
क्या कोई जानता है कि इसका कारण क्या हो सकता है? धन्यवाद।
proxies.testHub= this.createHubProxy('testHub');
proxies.testHub.client = { };
proxies.testHub.server = {
connect: function() {
return proxies.transactionHub.invoke.apply(proxies.testHub, $.merge(["Connect"], $.makeArray(arguments)));
}
};
क्यों इस में शामिल नहीं किया जाएगा पर कोई विचार: -
[संपादित करें] गैर काम फ़ाइल के साथ काम करने signalr/hubs.js फ़ाइल की तुलना के बाद, मैं निम्नलिखित भाग लापता पाया सिग्नलर/hubs.js फ़ाइल? मैं ग्लोबल.एएसएक्स में MapHubs() को कॉल कर रहा हूं ...
धन्यवाद!
[FIX] मैंने अपने गंतव्य वेब एप्लिकेशन के बिन फ़ोल्डर को हटा दिया, और फिर से तैनात किया गया। अभी भी सुनिश्चित नहीं है कि क्या अलग था। सभी डीएलएल समान हैं। यह अब काम करता है। अजीब।
यह मुश्किल है, आप सेटअप कि आईआईएस पर काम करता है और एक कि नहीं करता है के बीच विरोधाभास पर विस्तृत कर सकते हैं। आपने कहा, "मौजूदा वेब एप्लिकेशन के तहत एक वेब ऐप के रूप में चल रहे एक नए वेब एप्लिकेशन के रूप में, सब कुछ ठीक काम करता है"। यह आईआईएस पर सेटअप से अलग कैसे है कि सिग्नलआर विफल रहता है? –
निश्चित रूप से, मैं कोशिश कर सकता हूं ... आईआईएस में, मेरे पास "MyWebAplication" नामक एक वेब एप्लिकेशन है। यह एक बड़ा और जटिल वेब अनुप्रयोग है जो थोड़ी देर के लिए आसपास रहा है। मैं http://mycompany.com/mytest/signalrtest.aspx पर जाकर अपने परीक्षण पृष्ठ पर जाता हूं। किसी कारण से, इस परियोजना में मेरा हब प्रॉक्सी नहीं बनाया जा रहा है। यदि मैं एक नया विजुअल स्टूडियो प्रोजेक्ट बनाता हूं, और इसे mytest2 कहता हूं जिसमें केवल सिग्नल कोड (हब और क्लाइंट पेज) होता है, तो मैं आईआईएस में अपने मुख्य एप्लिकेशन के तहत प्रोजेक्ट को एप के रूप में तैनात करता हूं (इसलिए अब मैं http: // mycompany पर जाता हूं .com/mytest/mychildtest/signalrtest.aspx)। अब मेरा हब प्रॉक्सी ठीक से उत्पन्न करता है – user2676522
शायद "MyWebAplication" में कुछ सुरक्षा सेटिंग्स हैं जो कुछ आवश्यक एएसपी.NET पुस्तकालयों को लॉक कर चुके हैं सिग्नल को सही तरीके से काम करने की आवश्यकता है। क्या आपके पास एल्मा या एंटरप्राइज़ लाइब्रेरी जैसी जगह पर कोई लॉगिंग लॉगिंग है? क्या आपने बस विंडोज़ एप्लिकेशन इवेंट लॉग की जांच की है? –