这个错误是什么意思?远程主机关闭了连接。错误代码是0x80070057

时间:2010-09-24 18:47:36

标签: c# asp.net-mvc-2 iis-7

即使有几个人问过这个问题,但似乎问题与我的不同。像大多数人似乎得到行号或问题可能是由ViewState引起的。

我正在使用Asp.net 4.0 MVC 2.0,所以我认为我根本不使用ViewState。我的错误没有给我行号很好。所以我不知道是什么导致它或我的代码在哪里。

System.Web.HttpException (0x80070057): The remote host closed the connection. The error code is 0x80070057.
   at System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect)
   at System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush()
   at System.Web.HttpResponse.Flush(Boolean finalFlush)
   at System.Web.HttpResponse.Flush()
   at System.Web.HttpResponse.End()
   at System.Web.HttpResponse.Redirect(String url, Boolean endResponse, Boolean permanent)
   at System.Web.HttpResponseWrapper.Redirect(String url)
   at MySolutionFile.Domain.RequiresSSL.OnActionExecuting(ActionExecutingContext filterContext)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<>c__DisplayClassf.<InvokeActionMethodWithFilters>b__c()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<>c__DisplayClassf.<InvokeActionMethodWithFilters>b__c()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
   at System.Web.Mvc.Controller.ExecuteCore()
   at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
   at System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext)
   at System.Web.Mvc.MvcHandler.<>c__DisplayClass8.<BeginProcessRequest>b__4()
   at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0()
   at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End()
   at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
   at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

任何人都知道为什么?

2 个答案:

答案 0 :(得分:3)

我们将“Response.Redirect”和“return View()”混合在一起导致了这个问题。浏览器已重定向,但我们仍尝试返回视图...

BAD CODE

    switch (userType)
    {
        case "None":
            Response.Redirect("http://" + host + "/");
            break;
        default:
            Response.Redirect(internalwebhost + "/exit/");
            break;
    }

    return View();

更好的代码

    switch (userType)
    {
        case "None":
            url = "http://" + host + "/";
            break;
        default:
            url = internalwebhost + "/exit/";
            break;
    }

    return new RedirectResult(url);

答案 1 :(得分:1)

服务器无法将答案发送给客户端。客户端上丢失的网络连接可能是一个原因。

不确定在非常精确的时间关闭浏览器/标签是否也会出错。