Como resolver o erro “Request is not available in this context”
Você está trabalhando para migrar uma aplicação .NET do IIS6 para o IIS 7.x/8 e após fazer toda a configuração imediatamente no primeiro acesso já recebe a seguinte mensagem de erro:
Logo abaixo você poderá encontrar detalhes adicionais (linha onde ocorreu o erro) além de uma pilha similar ao seguinte:
Como podemos observar, o erro foi gerado no módulo/método ASP.global_asax.Application_Start da aplicação. Este é um problema conhecido quando se faz a migração de aplicações ASP.NET do IIS6 para versões superiores, e está descrito no seguinte blog: https://mvolo.com/iis7-integrated-mode-request-is-not-available-in-this-context-exception-in-applicationstart Para resolver o problema você precisará solicitar ao desenvolvedor que abra o arquivo GLOBAL.ASAX.CS (ou .VB) da aplicação e localize, dentro do método ApplicationStart() qualquer uso do objeto HttpContext.Current.Request. Em geral você encontrará algo como: str = HttpContext.Current.Request.QueryString["key"]; Será necessário remover este código substituindo-o por algum outro mecanismo. A explicação para este erro é bem simples: no IIS7 o novo pipeline integrado irá executar o método Application_Start() antes que qualquer request chegue ao servidor, e portanto, o objeto Request não está disponível. Um abraço e até a próxima, PT |
Comments
Anonymous
December 24, 2013
same as my problem? help please http://www.uodiyala.edu.iqAnonymous
December 25, 2013
Laith, you should check the article at this page: mvolo.com/iis7-integrated-mode-request-is-not-available-in-this-context-exception-in-applicationstart Just to give a brief explanation: in the global.asax page of your application you probably are using na instance of the Request class. This is not allowed in IIS7.x when running in the new pipeline mode. You can get rid of the problem changing the application pool from integrated to Classic, or you can fix your application.