terça-feira, 3 de agosto de 2010

Debug de Aplicação ASP.NET 2.0 no IIS7

Durante o debug de uma aplicação web ocorreu o seguinte erro quando  o projeto estava configurado para rodar utilizando o localhost ao invés do servidor web do próprio VS2005 em uma máquina utilizando o IIS7:

"Unable to start debugging on the server. Debugging failed because integrated Windows Authentication is not enabled."

Para habilitar o Windows Authentication no IIS7 proceder da seguinte forma:

  1. Com o IIS7 aberto selecione o website publicado e dê um duplo clique no ícone Autenticações indicado na figura abaixo.Capture 

  2. No item Autenticação do Windows selecione a Ação Habilitar.

Isto resolveu o problema da minha aplicação não conseguir rodar em modo Debug.

Depois de efetuada esta configuração quando rodei a aplicação obtive uma página de erro HTTP 403.14 não exibindo a minha aplicação que no caso era um webservice.

Para resolver este problema descobri que faltava a tag <system.webServer> que em aplicações .NET 3.5 já é incluída automaticamente pelo VS2008 e é obrigatória para rodar aplicações ASP.NET AJAX em IIS7, mas descobri que é necessária inclusive para aplicações não AJAX, no meu caso estava trabalhando com um WebService em .NET 2.0.

Portanto para resolver o meu problema inseri a seguinte configuração no meu web.config e a partir daí consegui rodar a aplicação no VS2005 utilizando o IIS7.

  <system.webServer>

    <validation validateIntegratedModeConfiguration="false"/>

    <modules>

      <remove name="ScriptModule"/>

      <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

    </modules>

    <handlers>

      <remove name="WebServiceHandlerFactory-Integrated"/>

      <remove name="ScriptHandlerFactory"/>

      <remove name="ScriptHandlerFactoryAppServices"/>

      <remove name="ScriptResource"/>

      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

      <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

    </handlers>

  </system.webServer>

0 comments:

Postar um comentário