ERROR: UNABLE TO START DEBUGGING ON THE WEB SERVER

TUNUSAT 27/05/2007 21:00:17
#218420
PessoALL, por favor ...

Estou criando um novo "ASP.NET Web Application" e na hora de rodar só funciona com Ctrl+F5 (Start Without Debugging).
Fala o seguinte erro:

================
Error while trying to run project: Unable to start debugging on the web server.
Click Help for more information.
================

Quando eu chamo o "Help" ... ele diz uma pá de coisas ... entre elas:

================

Manually Attaching
==================
If you follow the troubleshooting steps and still get an error message when you start debugging, you may want to try debugging your application by manually attaching.


To manually attach
------------------
1 - Start the application without debugging. (From the Debug menu, choose Start Without Debugging.)
2 - Attach to the appropriate IIS process or worker process. By default, inetinfo.exe for ATL Server applications or aspnet_wp.exe for ASP.NET applications (w3wp_wp.exe for ASP.NET applications under Windows Server 2003).

Use the following procedures to determine which process an ASP.NET or ATL Server application runs under.


To check which process an ASP.NET application runs under
--------------------------------------------------------
1 - Use Visual Studio .NET or another text editor to open the machine.config file for the application.
2 - Find this process model attribute:

enable

If enable is set to TRUE, the application runs under aspnet_wp.exe or w3wp.exe. (This is also the default setting.)

If enable is set to FALSE, the application runs under inetinfo.exe.


To check which process an ATL Server application runs under
-----------------------------------------------------------
1 - In Solution Explorer, right-click the project name and choose Properties from the shortcut menu.
2 - In the <Project> Property Pages dialog box, open the Web Deployment folder and choose General.
3 - Look at the Application Protection setting.

If the setting is Low (IIS Process), the application runs under inetinfo.exe.

If the setting is Medium (Pooled), the application runs under a dllhost.exe process (in common with other pooled ATL Server applications).

In the setting is High (Isolated), the application runs under a dllhost.exe process (separate from other ATL Server applications).

4 - Click OK to close the <Project> Property Pages dialog box.

See Also
================

Mas como eu faço o "Manual Attach" com ele rodando? Não entendi ...
Caso vc tenha outras idéias para rodar o debug, por favor me diga!

[]'s,
Tunusat.
TUNUSAT 28/05/2007 21:10:17
#218592
Aê!

Funcionou rodando um cara chamado "aspnet_regiis.exe":
C:\WINDOWS\Microsoft.NET\Frameworks\v1.1.4322>aspnet_regiis -r

Pesquisando drante o dia, descobri o seguinte endereço:
http://www.imasters.com.br/forum/lofiversion/index.php/t118429.html

Que me levou para este outro endereço:
http://www.imasters.com.br/artigo/2839

Muito boa matéria do José Carlos Macoratti (como sempre) ...
... vou anexá-la aqui ... valew!

[]'s,
Tunusat.
=================================
Quarta-feira, 05 de janeiro de 2005

Usando a ferramenta ASPNET_REGIIS.EXE

José Carlos Macoratti (e-mail) é referência em Visual Basic no Brasil e autor dos livros "Aprenda Rápido: ASP" e "ASP, ADO e Banco de Dados na Internet". Mantenedor do site macoratti.net.

Recentemente meu Internet Information Service - IIS (O servidor web instalado no Windows XP professional) acusava erro de registro sempre que eu ia criar uma aplicação ASP.NET usando o Visual Studio .NET. O IIS estava funcionando sem problemas, fiz alguns testes de acesso a páginas ASP e ASPX e elas foram processadas. O problema estava no relacionamento entre o ASP.NET e o IIS.

Como o ASP.NET depende de um servidor web para executar suas aplicações, nada mais natural ele usar o IIS e portanto o IIS deve estar instalado na máquina de desenvolvimento. O .NET Framework mapeia as extensões e registra o ASP.NET no IIS durante a sua instalação preparando assim o ambiente para o desenvolvimento e execução das aplicações que requerem o serviço do IIS.

---------------------------------------
Nota - Existem servidores Web alternativos ao IIS que você pode usar para rodar aplicações ASP.NET na sua máquina local. Um deles é o servidor do Webmatrix; outro é o Cassini (incluido no WebMatrix), um web server escrito em C# (para mais informações visite (http://www.asp.net/). Você pode também instalar o Apache 2.x for Windows (neste caso você deve parar o IIS).
---------------------------------------

Como o ASP.NET utiliza diversas configurações e arquivos para poder trabalhar e executar aplicações Web, deve existir um mapeamento para as extensões destes arquivos de forma que o IIS saiba qual DLL ele deve usar para responder a uma requisição do cliente. Se você abrir o IIS na sua máquina e localizar uma aplicação ASP.NET clicando em cima dela com o botão direito do mouse e escolhendo Propriedades, irá ver a janela de Propriedades. Clique no botão - Configuração - e você irá ver todas as extensões mapeadas para o arquivo que deve executá-la. (veja abaixo a sequência das figuras ilustrando o processo para a aplicação web chamada WebApp1).







Tudo tem que estar configurado e mapeado, pois se houver algum problema com o mapeando devido a uma exclusão de um arquivo indevido ou se você instalar o IIS após ter instalado o Visual Studio NET, o IIS não vai executar as aplicações ASP.NET. (No meu caso, eu creio que exclui indevidamente um arquivo de configuração ASP.NET)

Como resolver problemas deste tipo?

Uma solução é desinstalar e reinstalar o .NET Framework na sua máquina de desenvolvimento ou servidor, certo?

Esta solução vai resolver o problema mas é uma solução drástica. Existe uma solução mais simples que é usar o a ferramenta ASPNET_REGIIS.EXE.

Descobri esta ferramenta quando estava com o problema no meu IIS e resolvi o problema sem ter que reinstalar o Framework. Você vai encontrá-la na pasta

X:\Windows\Microsoft.NET\Framework\sua_versão_do_framework.



---------------------------------------
Nota - Cada versão do NET Framework possui esta ferramenta associada e se você tiver mais de uma versão do .NET Framework instalado use o ASPNET_REGIIS.EXE a partir do diretório correspondente a versão que deseja corrigir.
---------------------------------------

Uma forma segura de ter certeza de que esta executando a versão correta da ferramenta (se você tiver mais de um .NET Framework instalado) é clicar no botão Iniciar do Windows; A seguir clicar em Todos os Programas; Selecionar na sequência: Microsoft Visual Studio .NET 2003 > Visual Studio .NET Tools > Visual Studio .NET 2003 CommandPrompt, conforme figura abaixo:



Você deverá ver a janela de prompt do DOS conforme figura abaixo, basta então executar a ferramenta:



A sintaxe é: Aspnet_regiis [opções]

As principais opções possíveis são:

================================
Opção
Descrição da opção
--------------------------------
-i
Instala a versão do ASP.NET associada ao ASPNET_REGIIS.EXE, cria o registro no IIS e atualiza o mapeamento das extensões no IIS de todas as aplicações ASP.NET.( As aplicações web para as quais a versão do ASP.NET for diferente não serão atualizadas.)
--------------------------------
-ir
Instala a versão do ASP.NET associada ao ASPNET_REGIIS.EXE e cria o registro no IIS. O mapeamento não é atualizado com esta opção.
--------------------------------
-u
Desinstala a versão do ASP.NET associada ao ASPNET_REGIIS.EXE. Os mapeamentos para as aplicações ASP.NET serão automaticamente atualizados para a versão mais recente instalada na sua máquina.
--------------------------------
-c
Instala a pasta ASPNET_CLIENT e seus scripts em todos os sites no IIS. Somente os scripts associados à versão do ASPNET_REGIIS.EXE são instalados.
--------------------------------
-ua
Desinstala todas as versões do ASP.NET instaladas na sua máquina..
--------------------------------
-e
Remove os scripts da pasta ASPNET_CLIENT de todos os sites no IIS associados à versão do ASPNET_REGIIS.EXE. As pastas ASPNET_CLIENT de outras versões do ASP.NET não são alteradas.
--------------------------------
-ea
Remove os scripts da pasta ASPNET_CLIENT de todos os sites no IIS. Esta opção remove os scripts de todas as versões do ASP.NET instaladas na sua máquina.
--------------------------------
-s
Instala o mapeamento das extensões de todas as versões do ASP.NET somente do endereço especificado. Esta opção instala o mapeamento de todas as aplicações ASP.NET abaixo da pasta especificada.(no caso ROOT)

Ex.: aspnet_regiis.exe -s W3SVC/1/ROOT
--------------------------------
-lk
Lista todas as pastas e a versão do registro do ASP.NET instalado no seu IIS.
--------------------------------
-lv
Lista o status e o local de instalação de todas as versões do ASP.NET na sua máquina.
--------------------------------
-r
Atualiza todos os mapeamentos das extensões para a versão do ASP.NET associada ao ASPNET_REGIIS.EXE.
================================

Creio que as opções mais úteis e também as mais usadas sejam as opções -i e -c para sanar erros "misteriosos" que fazem com que sua aplicação ASP.NET não funcione no IIS pois elas reparam o mapeamento e reinstalam os arquivos de scripts nos seus devidos lugares.

No meu caso eu executei a seguinte linha de comando: aspnet_regiis.exe -i e resolvi o meu problema. Espero que isto possa ajudá-lo quando necessário.

Com esta ferramenta você pode então reparar erros de mapeamento entre o IIS e o ASP.NET e gerenciar múltiplas versões do .NET Framework em uma única máquina para sites que rodam em diferentes versões do Framework. O comando para mapear um script específico para sua respectiva versão do ASP.NET é:

aspnet_regiis -s W3SVC/1/ROOT/Sua_AplicaçãoWeb

Onde:
-s: é parâmetro do caminho do diretório virtual da aplicação Web.

Referências:

Microsoft Knowledge Base Article 318465: "Cannot Debug ASP.NET Web Application" (http://support.microsoft.com/default.aspx?scid=kb;en-us;318465)

Microsoft Knowledge Base Article 306005: "Repair IIS Mapping After You Remove and Reinstall IIS" (http://support.microsoft.com/default.aspx?scid=kb;en-us;306005)

Deploying .NET Applications: Lifecycle Guide (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/DALGIssues.asp). Veja a seção "Using Aspnet_regiis.exe to Manage Multiple Versions of the .NET Framework for Your Web Applications."

Até o próximo artigo ASP.NET.
Tópico encerrado , respostas não são mais permitidas