Sto utilizzando l'approccio seguente per gestire 404 errori sui miei siti. Ciò ha funzionato a lungo, ma improvvisamente, nell'ultimo mese, ricevo un'eccezione "Maniglia non inizializzata" con un numero di siti sul nostro server dedicato (alcuni funzionano ancora e sul computer di sviluppo funziona). Qualcuno ha qualche pensiero?gestore 404 che riceve l'eccezione "Maniglia non inizializzata"
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<httpErrors existingResponse="Replace">
<remove statusCode="500" subStatusCode="-1"/>
<remove statusCode="404" subStatusCode="-1"/>
<error statusCode="404" prefixLanguageFilePath="" path="/default.aspx" responseMode="ExecuteURL"/>
<error statusCode="500" prefixLanguageFilePath="" path="/error.aspx" responseMode="ExecuteURL"/>
</httpErrors>
</system.webServer>
A pagina default.aspx: dettagli
protected void Page_PreRender(object sender, EventArgs e)
{
if (!Page.IsPostBack && Request.Url.ToString().Contains("?404;"))
{
HttpContext.Current.RewritePath("~/");
Page.Header.Controls.AddAt(0, new LiteralControl("<base href='" + Request.Url.Scheme + "://" + Request.Url.Authority + "'/>"));
Response.StatusCode = 404;
Util.DisplayAlert("The page you are looking for no longer exists. If you navigated to this page by clicking a link within this site please <a href='/contact.aspx'>contact us</a> to let us know.");
}
}
eccezione:
Exception information:
Exception type: InvalidOperationException
Exception message: Handle is not initialized.
at System.Runtime.InteropServices.GCHandle.FromIntPtr(IntPtr value)
at System.Web.Hosting.PipelineRuntime.GetManagedPrincipalHandler(IntPtr pRootedObjects)
at System.Web.Hosting.UnsafeIISMethods.MgdGetPrincipal(IntPtr pHandler, IntPtr& pToken, IntPtr& ppAuthType, Int32& pcchAuthType, IntPtr& ppUserName, Int32& pcchUserName, IntPtr& pManagedPrincipal)
at System.Web.Hosting.IIS7WorkerRequest.GetUserPrincipal()
at System.Web.Hosting.IIS7WorkerRequest.SynchronizeVariables(HttpContext context)
at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context)
non so il motivo per cui * * questo sta accadendo, ma ho trovato che disattivando runAllManagedModulesForAllRequests il problema scompare. Ho intenzione di provare ad archiviarlo su connect per vedere se la causa è imminente. –
Grazie ad altri per aver confermato che stanno riscontrando il problema. Grazie a danludwig per aver menzionato il fatto che funziona, se sei registrato, è per questo che stavo ottenendo "alcuni [siti] funzionano ancora, e sulla macchina di sviluppo funziona". Poiché questo sembra essere iniziato solo dopo alcune patch, ho archiviato questo problema in Microsoft Connect: https://connect.microsoft.com/VisualStudio/feedback/details/732494/asp-net-httperrors-handle- non-inizializzato – Michael
@PhilipStears Hai finito per archiviarlo su connect? Se hai pubblicato l'url sarebbe stato apprezzato, non ho trovato il tuo rapporto eseguendo una ricerca bing, quindi ho archiviato un nuovo rapporto collegato sopra, ma sarebbe meglio che il mio fosse un duplicato se lo facessi. Grazie. – Michael