ASP.net 主机关闭了连接

Jef*_*son 6 c# asp.net

我正在尝试在 IIS 中停止此警告,并且我正在阅读我应该IsClientConnected在调用TransmitFile(filename). 这是正确的还是另一种纠正方法?

IIS 异常

异常信息: 异常类型:HttpException 异常消息:远程主机关闭了连接。错误代码是 0x800703E3。在 System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean ?throwOnDisconnect)

    if (context.Response.IsClientConnected)
    {
        context.Response.Clear();
        context.Response.ClearContent();
        context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        context.Response.AddHeader("Expires", "-1");
        context.Response.ContentType = "application/pdf";
        context.Response.TransmitFile(filename);
        context.Response.Flush();
        context.Response.End();
    }
    else
    {
        context.Response.End();
    }
Run Code Online (Sandbox Code Playgroud)

更新代码

            try
            {

                context.Response.Clear();
                context.Response.ClearContent();
                context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
                context.Response.AddHeader("Expires", "-1");
                context.Response.ContentType = "application/pdf";
                context.Response.TransmitFile(filename);
                context.ApplicationInstance.CompleteRequest()
                //context.Response.Flush();
                //context.Response.End();
            }
            catch (HttpException hex)
            {

            }
Run Code Online (Sandbox Code Playgroud)

Bar*_*r J 3

此错误意味着您的代码中存在运行时异常。通常,当通过 IIS 托管您的应用程序时,会出现此类错误,这些错误将立即关闭连接。

您应该通过附加到进程w3wp来调试代码。

通过在 Visual Studio 中导航至:

---> DEBUG
   ---> Attach to process
   ---> choose w3wp.exe
   ---> attach to process
Run Code Online (Sandbox Code Playgroud)

故障排除程序建议您检查对象,IsClientConnected因为这是可能导致异常的最常见问题 - 如果您尝试调用不存在的客户端(IsClientConnected例如null)。