The background for the problem:
Cassini can be crashed by a malformed request. For example, on a machine with Cassini
- run Telnet,
- do "open 127.0.0.1 7756", then
- paste bunch of single white space " " lines,
- and hit Enter a couple of times: Cassini service crashes with following stack info:
An unhandled exception occurred and the process was terminated.
Application ID: UltiDevCassinWebServer2a.exe
Process ID: nnnn
Exception: System.NullReferenceException
Message: Object reference not set to an instance of an object.
StackTrace: at Cassini.Request.IsBadPath()
at Cassini.Request.TryParseRequest()
at Cassini.Request.Process()
at Cassini.Host.ProcessRequest(Connection conn)
at Cassini.Host.ProcessRequest(Connection conn)
at Cassini.Server.OnSocketAccept(Object acceptedSocket)
at System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)
If Cassini has started failing/crashing after working well for a long time, it's most likely is caused by some client sending malformed requests. Running
Wireshark on the server may help finding where the request comes from and using a firewall to block the offending IP, or in cases where it's caused by an anti-virus or vulnerability scanner, preventing such tool from hitting Cassini.
Best regards,
UltiDev Team.
Please donate at
http://www.ultidev.com/products/Donate.aspx to help us improve our products.