2010-09-24 2 views
6

Даже если пара людей задала этот вопрос, кажется, что проблема отличается от моей. Как и большинство из них, похоже, они получают номера строк, или проблема может быть вызвана ViewState.Что означает эта ошибка? Удаленный хост закрыл соединение. Код ошибки 0x80070057

Я использую 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) 

Кто-нибудь знает почему?

+0

См http://stackoverflow.com/a/22992379/ 17373 для примера того, как зафиксировать эту ошибку и игнорировать ее. –

ответ

1

Сервер не смог отправить ответ клиенту. Причиной может стать сетевое соединение, потерянное на клиенте.

Не уверен, что закрытие браузера/вкладки в очень точное время также даст ошибку.

+0

Хм, как вы думаете, это было вызвано. В любом случае, я могу остановить эту ошибку, или это то, с чем мне просто нужно жить, если это сценарий, действительно то, что вы думаете. – chobo2

+0

Если это было то, что я описал выше, вам нужно жить. Является ли характер сети, клиент может отключиться. Вы или кто-то еще мог получить эту ошибку или это было то, что вы выбрали из журналов? – eglasius

+0

Это первый раз, когда я видел эту ошибку. ELMAH только что отправил мне уведомление об этой ошибке. – chobo2

3

Мы смешали «Response.Redirect» с «return View()», который вызвал эту проблему. Браузер был перенаправлен, но мы пытались еще вернуться вид ...

BAD КОД

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

Response.End() или Flush() также могут решить эту проблему, но гораздо лучше вернуть RedirectResult –