Edd*_*fen 3 c# asp.net google-chrome iis-10
ERR_CONNECTION_RESET当我的ASP.NET服务器尝试以错误答复时,我正在使用Chrome。
通常,我可以通过在日志文件中找到有关服务器错误的信息,但是那里什么也没有。
在响应上运行调试器似乎表明一切正常,除了最后,Chrome告诉我连接已重置。
这是处理异常处理的代码:
try
{
...
}
catch (ArgumentException e)
{
Response.StatusCode = 400;
Response.StatusDescription = e.Message;
return new ContentResult {Content = "" };
}
Run Code Online (Sandbox Code Playgroud)
Chrome net::ERR_CONNECTION_RESET在控制台中显示了我。
使用Fiddler,我收到错误消息 [Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 0 bytes.
如果我在IIS中启用了失败的请求跟踪,然后打开生成的xml文件
GENERAL_FLUSH_RESPONSE_END
BytesSent
0
ErrorCode
The parameter is incorrect.
(0x80070057)
Run Code Online (Sandbox Code Playgroud)
我花了几个小时尝试调试它,但运气不佳。
在本地主机上使用一些虚拟域并分配SSL证书后,出现了这个问题。选择当前域的IIS开发证书,错误消失了。
事实证明这是由这一行引起的:
Response.StatusDescription = e.Message;
Run Code Online (Sandbox Code Playgroud)
当 e.Message 内部有换行符 ( \r\n) 序列时。
我可以用来修复此错误的两个选项是:
1.将该行替换为:
Response.StatusDescription = e.Message.Replace("\r\n"," ");
Run Code Online (Sandbox Code Playgroud)
2.将卡块更换为
catch (ArgumentException e)
{
Response.StatusCode = 400;
return new ContentResult {Content = e.Message };
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5450 次 |
| 最近记录: |