Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过WCF双工通道通过SocketIO4NET使用Socket.IO时,应用程序关闭_C#_Asp.net Mvc 3_Iis 7_Socket.io - Fatal编程技术网

C# 通过WCF双工通道通过SocketIO4NET使用Socket.IO时,应用程序关闭

C# 通过WCF双工通道通过SocketIO4NET使用Socket.IO时,应用程序关闭,c#,asp.net-mvc-3,iis-7,socket.io,C#,Asp.net Mvc 3,Iis 7,Socket.io,我使用C#连接到,但当我尝试向客户端发送对象时,我的C#应用程序突然关闭(我有一个MVC3项目) 我阅读了事件查看器,发现3个错误: (一) (二) (三) 我的项目怎么了?SocketIO4NET中是否存在任何错误?最后我找到了答案,这是因为.NET版本(我使用.NET 4)和WCF双工信道 您应该在WCF包装类的顶部添加此属性: [CallbackBehavior(UseSynchronizationContext=false)] 感谢Cauldwell.net提供的答案: 从cauldw

我使用C#连接到,但当我尝试向客户端发送对象时,我的C#应用程序突然关闭(我有一个MVC3项目)

我阅读了事件查看器,发现3个错误:

(一)

(二)

(三)


我的项目怎么了?SocketIO4NET中是否存在任何错误?

最后我找到了答案,这是因为.NET版本(我使用.NET 4)和WCF双工信道

您应该在WCF包装类的顶部添加此属性:

[CallbackBehavior(UseSynchronizationContext=false)]
感谢Cauldwell.net提供的答案:

从cauldwell.net:

事实证明,问题在于ASP.NET(默认情况下)使用 一个叫做SynchronizationContext的小东西。就我所知 (老实说,我还没有彻底研究过这件事)它的工作之一 它需要确保在UI线程上运行任何回调,从而 无需调用控件。像在WinForms中那样调用。在里面 我的情况是,那把额外的锁给了我一些适合的东西,它是 试图清理一根不再存在的线上的东西, 因此,要使用NullReferenceException


特别感谢

你能更新你尝试过的代码吗。@纳伦德拉夫:我不能给你一个示例代码,因为我有一个大项目,我真的不知道问题发生在哪里/什么时候。如果你能提供一些具体的信息,我会进一步看一看(SocketIO4Net的作者)。您已经发布了一组通用的错误,这些错误可能由许多事情触发……谢谢大家。问题解决了,请看我的答案。这与SocketIO4Net没有任何关系-非常感谢您将其清理干净。
An unhandled exception occurred and the process was terminated.

Application ID: /LM/W3SVC/2/ROOT

Process ID: 3696

Exception: System.Runtime.FatalException

Message: Object reference not set to an instance of an object.
Application: w3wp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Runtime.FatalException
Stack:
   at System.Runtime.Fx+IOCompletionThunk.UnhandledExceptionFrame(UInt32, UInt32, System.Threading.NativeOverlapped*)
   at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)
[CallbackBehavior(UseSynchronizationContext=false)]