公司有位大神發現的問題,給出的解決方案,在此記錄一下。
在
ASP.NET中,當Post Body中的數據量過大的時候(超過maximum request length),.NET會把超過的部分放入Buffered Stream中,在讀取完這個Buffered Stream,才能讀取Request的InputStream,否則,會拋出異常
。


public void ResponseHandler(HttpContext httpContext) { var s=new StreamReader(this.httpContext.Request.InputStream);//會報錯 var r=s.ReadToEnd(); }
應改為:
public void ResponseHandler(HttpContext httpContext) { var streamReader = new StreamReader(stream=Request.GetBufferedInputStream()); var streamRead = streamReader.ReadToEnd(); var s=new StreamReader(this.httpContext.Request.InputStream); var r=s.ReadToEnd(); }