问题描述
使用.net2.0框架,应用程序池设置了最大连接队列5000,设置超时120秒,带宽20M,监测高峰时流量为12M,ashx经常每隔几分钟就会报一个奇怪的错误,在System.Web.Hosting.UnsafeIISMethods.MgdSyncReadRequest(IntPtrpHandler,Byte[]pBuffer,Int32offset,Int32cbBuffer,Int32&pBytesRead,UInt32timeout)在System.Web.Hosting.IIS7WorkerRequest.ReadEntityCoreSync(Byte[]buffer,Int32offset,Int32size,Int64timeout)在System.Web.Hosting.IIS7WorkerRequest.ReadEntityBodyWithTimeout(Byte[]buffer,Int32size,Int64timeout)在System.Web.HttpRequest.GetEntireRawContent()在System.Web.HttpRequest.FillInFormCollection()在System.Web.HttpRequest.get_Form()在System.Web.HttpRequest.get_Item(Stringkey)在hr.ProcessRequest(HttpContextcontext)正在中止线程
请大神指导一下这究竟是为什么啊?带宽并未占满,最大连接数也够大了。
解决方案
解决方案二:
传什么巨大的对象?你可以测试一下,确保任何数据请求大小都限制在2M字节一下,平均在几十K以下。
解决方案三:
唉,碰到土豪就是没办法,土豪修改起系统参数来可是毫不留情啊。在windows系统上,我给你一个经验,尽可能不要去修改任何系统参数。如果遇到瓶颈,考虑你自己的框架设计,而不是去修改人家的参数。
解决方案四:
引用2楼sp1234的回复:
唉,碰到土豪就是没办法,土豪修改起系统参数来可是毫不留情啊。在windows系统上,我给你一个经验,尽可能不要去修改任何系统参数。如果遇到瓶颈,考虑你自己的框架设计,而不是去修改人家的参数。
没传任何巨大的对象,就是很简单的json数组,大小不超过2KB,原来没修改任何系统参数,但是问题很频繁就改了一下。
解决方案五:
错误信息可以粘全一些
解决方案六:
引用4楼freednc的回复:
错误信息可以粘全一些
这个就是全部错误信息了stringdata=context.Request.Form["data"];
应该是这里出的问题。
解决方案七:
错误信息,不是说代码
解决方案八:
引用6楼freednc的回复:
错误信息,不是说代码
在System.Web.Hosting.UnsafeIISMethods.MgdSyncReadRequest(IntPtrpHandler,Byte[]pBuffer,Int32offset,Int32cbBuffer,Int32&pBytesRead,UInt32timeout)在System.Web.Hosting.IIS7WorkerRequest.ReadEntityCoreSync(Byte[]buffer,Int32offset,Int32size,Int64timeout)在System.Web.Hosting.IIS7WorkerRequest.ReadEntityBodyWithTimeout(Byte[]buffer,Int32size,Int64timeout)在System.Web.HttpRequest.GetEntireRawContent()在System.Web.HttpRequest.FillInFormCollection()在System.Web.HttpRequest.get_Form()在System.Web.HttpRequest.get_Item(Stringkey)在hr.ProcessRequest(HttpContextcontext)正在中止线程
这个就是最完整的错误信息啊。
解决方案九:
为什么错误信息看不到异常
解决方案十:
引用8楼freednc的回复:
为什么错误信息看不到异常
catch(Exceptionex){ex.StackTrace+""+ex.Message+DateTime.Now.ToString());}
我这样输出的错误信息。