从IIS获取ERR_CONNECTION_RESET,日志中没有信息

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)

我花了几个小时尝试调试它,但运气不佳。

Ste*_*hev 7

在本地主机上使用一些虚拟域并分配SSL证书后,出现了这个问题。选择当前域的IIS开发证书,错误消失了。

  • 出于某种原因,我也遇到了同样的错误,无法弄清楚是什么问题。手动删除 https 绑定并重新创建后,一切又开始工作了...... (2认同)
  • 不是所有的英雄穿着斗篷。谢谢。 (2认同)

Edd*_*fen 1

事实证明这是由这一行引起的:

 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)

  • 遇到了同样的问题。太感谢了。我在这个问题上撞了大约两天的头。 (2认同)