L'applicazione è scritta in ASP .NET 4.0 ospitato in IIS 7.5 sulla macchina che esegue Windows Server 2008 R2. Il pool di applicazioni utilizza la modalità Pipeline gestito integrato.Applicazione Web ASP.NET 4.0 che lancia "Funzione errata. (Eccezione da HRESULT: 0x80070001)"
L'eccezione riportata di seguito viene generata su diverse pagine che non hanno nulla in comune. Non riesco a riprodurre l'eccezione da solo, ma è successo 10 volte la settimana scorsa nell'ambiente di produzione.
dalla pila Trace vedo che l'eccezione generata dal metodo "HttpRequest.GetEntireRawContent", così mi chiedevo se c'è qualcosa di sbagliato con la richiesta, come ad esempio che sia troppo lungo o che contiene un carattere non valido.
Giusto per essere chiari, questa eccezione è non generata dal codice che ho scritto, proviene dallo spazio dei nomi System.Web. Quindi non posso aggiungere una prova ... prendila intorno.
Sarebbe utile per qualsiasi idea sulla causa dell'eccezione o sulla risoluzione dei problemi per trovare ulteriori informazioni.
Exception: System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.Web.HttpException (0x80004005): An error occurred while communicating with the remote host. The error code is 0x80070001. ---> System.Runtime.InteropServices.COMException (0x80070001): Incorrect function. (Exception from HRESULT: 0x80070001)
at System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect)
at System.Web.Hosting.IIS7WorkerRequest.ReadEntityCoreSync(Byte[] buffer, Int32 offset, Int32 size)
at System.Web.HttpRequest.GetEntireRawContent()
at System.Web.HttpRequest.FillInFormCollection()
at System.Web.HttpRequest.get_Form()
at System.Web.HttpRequest.get_HasForm()
at System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
at System.Web.UI.Page.DeterminePostBackMode()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.HandleError(Exception e)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.ProcessRequest()
at System.Web.UI.Page.ProcessRequest(HttpContext context)
at ASP.report_openinghours_aspx.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
EDIT:
Come sottolineato da lukiffer c'è una domanda simile qui: stackoverflow.com/questions/7825127/ La correzione suggerita è di spegnere TCP offload, il modo in cui ho capito è che offload TCP protegge il server web da molta della complessità del TCP. Pertanto, disattivarlo consumerebbe un sacco di cicli della CPU, quindi rallenterebbe i server web, il che ovviamente non è desiderabile.
Inoltre, non capisco perché lo scaricamento TCP possa causare un'eccezione a IIS.
Vedere: http: // stackoverflow.it/questions/7825127/system-runtime-interopservices-comexception-incorrect-function-exception-from – lukiffer
Puoi inserire il codice all'interno di 'report_openinghours.aspx.cs' che sta chiamando il servizio remoto/origine dati, comprese le chiamate COM e oggetti – Kane
Il codice contenuto in "report_openinghours.aspx.cs" non chiama un servizio/origine dati remota, né alcuna chiamata o oggetto COM. Sembra che il codice che utilizza un oggetto COM si trovi nella classe IIS7WorkerRequest. – user1069816