Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WebSocket4Net v 0.12 silently stops sending messages after about 60 seconds #7

Open
gb96 opened this issue Apr 14, 2015 · 1 comment

Comments

@gb96
Copy link

gb96 commented Apr 14, 2015

I have no idea what is going on here... I am calling a method via DDPClient once every second and it seems to work fine for about 60 seconds then the server simply stops receiving any messages. No errors anywhere.

        if (!WebSocketState.Open.Equals(_mDdpClient1.State)) return;
        _mDdpClient1.Call("myServerMethod", MyArg1, MyArg2);

One thing I noticed since the latest version is my IDataSubscriber.DataReceived callback is never being called, where previously it used to get the result of each method call.

I tried rolling back to WebSocket4Net v 0.8 however at runtime I get the following error. Have tried everything but can't seem to find a reference to fix. Deleted all WebSocket4Net.dll and Net.DDP.Client.dll from my PC but somehow Visual Studio keeps looking for the wrong version:

System.IO.FileLoadException was unhandled
  HResult=-2146234304
  Message=Could not load file or assembly 'WebSocket4Net, Version=0.12.0.0, Culture=neutral, PublicKeyToken=eb4e154b696bf72a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
  Source=Net.DDP.Client
  FileName=WebSocket4Net, Version=0.12.0.0, Culture=neutral, PublicKeyToken=eb4e154b696bf72a
  FusionLog=""
  StackTrace:
       at Net.DDP.Client.DDPConnector.Connect(String url, Boolean keepAlive)
       at Net.DDP.Client.DDPClient.Connect(String url) in c:\Users\greg\Documents\git\third-party\DDPClient.NET\Net.DDP.Client\DDPClient.cs:line 31
       at SerialControlCenter.PCP_simulator.PcpSimulator..ctor(MainForm mf) in c:\Users\greg\Documents\git\internal\SerialControlCenter\SerialControlCenter\PCP_simulator\PCP_simulator.cs:line 163
       at SerialControlCenter.MainForm.toolStripAppType_SelectedIndexChanged(Object sender, EventArgs e) in c:\Users\greg\Documents\git\internal\SerialControlCenter\SerialControlCenter\MainForm.cs:line 1020
       at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
       at System.Windows.Forms.ToolStripComboBox.OnSelectedIndexChanged(EventArgs e)
       at System.Windows.Forms.ToolStripComboBox.HandleSelectedIndexChanged(Object sender, EventArgs e)
       at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
       at System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
       at System.Windows.Forms.ComboBox.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
       at System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.Control.ReflectMessageInternal(IntPtr hWnd, Message& m)
       at System.Windows.Forms.Control.WmCommand(Message& m)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       at System.Windows.Forms.ToolStrip.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
       at System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
       at System.Windows.Forms.Control.DefWndProc(Message& m)
       at System.Windows.Forms.Control.WmCommand(Message& m)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ComboBox.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(Form mainForm)
       at SerialControlCenter.Program.Main() in c:\Users\greg\Documents\git\internal\SerialControlCenter\SerialControlCenter\Program.cs:line 16
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.IO.FileLoadException
       HResult=-2146234304
       Message=Could not load file or assembly 'WebSocket4Net, Version=0.8.0.0, Culture=neutral, PublicKeyToken=eb4e154b696bf72a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
       FileName=WebSocket4Net, Version=0.8.0.0, Culture=neutral, PublicKeyToken=eb4e154b696bf72a
       FusionLog=Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  C:\Users\greg\Documents\git\internal\SerialControlCenter\SerialControlCenter\bin\Debug\SerialControlCenter.vshost.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: DisplayName = WebSocket4Net, Version=0.8.0.0, Culture=neutral, PublicKeyToken=eb4e154b696bf72a
 (Fully-specified)
LOG: Appbase = file:///C:/Users/greg/Documents/git/internal/SerialControlCenter/SerialControlCenter/bin/Debug/
LOG: Initial PrivatePath = NULL
Calling assembly : Net.DDP.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\greg\Documents\git\internal\SerialControlCenter\SerialControlCenter\bin\Debug\SerialControlCenter.vshost.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Redirect found in application configuration file: 0.8.0.0 redirected to 0.12.0.0.
LOG: Post-policy reference: WebSocket4Net, Version=0.12.0.0, Culture=neutral, PublicKeyToken=eb4e154b696bf72a
LOG: Attempting download of new URL file:///C:/Users/greg/Documents/git/internal/SerialControlCenter/SerialControlCenter/bin/Debug/WebSocket4Net.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Minor Version
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
@gb96
Copy link
Author

gb96 commented Apr 14, 2015

Found a solution to my DLL version binding problem here: https://social.msdn.microsoft.com/Forums/vstudio/en-US/7dcaf792-e226-44b5-b9dd-8eebaf5ece20/fusion-redirects-to-wrong-version-than-specified-in-application-config-file?forum=clr

Using WebSocket4Net version 0.8 instead of v 0.12 seems to resolve all my problems, messages are sent continuously and my IDataSubscriber.DataReceived callback is being called again. Might need to log an issue against WebSocket4Net.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant