ASP.NET 4.5 page and occasional err_ssl_protocol_error

0

WinServer 2012 IIS 8 ASP.NET 4.5

I noticed, while using IE11 that a particular page intermittently fails to load. It just says "This page can’t be displayed". If I use the F12 dev tools, the network trace shows the request with a 200 response, but the response body just ends abruptly mid page.

When I load the page in Chrome, I intermittently have a problem with the same page. Chrome however shows net::err_ssl_protocol_error for that request. Chrome also shows the byte count as about 1/2 the page content.

I ran the SSLDiag tool on the web server and that reported all SSL certs as good/no errors.

Every other page (that I can tell) works on the site. Other pages are a mix of ASP.NET and MVC and none of the other have this problem.

Connected to this is an entry in the event viewer (below). You'll note that it ends with an explicit flush. I don't have code that calls Flush, but I do turn off buffering, so it must be an internal ASP.NET flush. But how does a flush (with no client at the other end) cause Chrome to report a SSL protocol error?

Event code: 3005 
Event message: An unhandled exception has occurred. 
Event time: 4/23/2014 12:27:31 PM 
Event time (UTC): 4/23/2014 7:27:31 PM 
Event ID: fca4a66e73bf46adb3215dcdb88a0b82 
Event sequence: 1159 
Event occurrence: 19 
Event detail code: 0 

Application information: 
    Application domain: /LM/W3SVC/10/ROOT-1-130427523426870110 
    Trust level: Full 
    Application Virtual Path: / 
    Application Path: D:\inetpub\wwwroot\MySite\ 
    Machine name: EBIDEVW4 

Process information: 
    Process ID: 5028 
    Process name: w3wp.exe 
    Account name: MyCompany\MySiteUser

Exception information: 
    Exception type: HttpException 
    Exception message: The remote host closed the connection. The error code is 0x800704CD.
   at System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect)
   at System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush()
   at System.Web.HttpResponse.Flush(Boolean finalFlush, Boolean async)
   at System.Web.HttpWriter.Write(String s)
   at System.Web.UI.HtmlTextWriter.RenderBeginTag(HtmlTextWriterTag tagKey)
   at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
   at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
   at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.WebControls.Table.RenderContents(HtmlTextWriter writer)
   at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
   at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at ASP.rpt_jobs_aspx.__RenderForm1(HtmlTextWriter __w, Control parameterContainer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
   at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
   at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at ASP.rpt_jobs_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
   at System.Web.UI.Page.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)



Request information: 
    Request URL: https://customdomain.mycompany.com:443/rpt/jobs.aspx 
    Request path: /rpt/jobs.aspx 
    User host address: 10.10.1.25 
    User: myuser 
    Is authenticated: True 
    Authentication Type: Forms 
    Thread account name: MyCompany\MySiteUser 

Thread information: 
    Thread ID: 10 
    Thread account name: MyCompany\MySiteUser
    Is impersonating: False 
    Stack trace:    at System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect)
   at System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush()
   at System.Web.HttpResponse.Flush(Boolean finalFlush, Boolean async)
   at System.Web.HttpWriter.Write(String s)
   at System.Web.UI.HtmlTextWriter.RenderBeginTag(HtmlTextWriterTag tagKey)
   at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
   at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
   at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.WebControls.Table.RenderContents(HtmlTextWriter writer)
   at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
   at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at ASP.rpt_jobs_aspx.__RenderForm1(HtmlTextWriter __w, Control parameterContainer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
   at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
   at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at ASP.rpt_jobs_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
   at System.Web.UI.Page.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Update: I am not so concerned about getting the The remote host closed the connection. The error code is 0x800704CD. exception on the server IF the user really does close the connection mid stream. My concern and question is why is there an ssl protocol error in chrome and a chopped response in chrome and IE when it seems that nothing is stopping the request?

asp.net
ssl
iis-8
asked on Stack Overflow Apr 23, 2014 by slolife • edited Apr 24, 2014 by slolife

1 Answer

0

It also happens in some of our sites. What I notice is that most of them are crawler.

The exception throws when a crawler requests a page, and closes the connection without waiting for the response from the server or close the connection in middle of sending the request.

Similarly, it also happens when a user requests a page, and closes the browser or network drops.

As far as I know, there is nothing you can do about The remote host closed the connection exception.

If you want, you might want to ignore that kind of error in void Application_Error(object sender, EventArgs e).

answered on Stack Overflow Apr 23, 2014 by Win

User contributions licensed under CC BY-SA 3.0