Può capitare che, quando si installa Visual Studio 2005 in una macchina in cui è già presente Visual Studio 2003, il debugging di ASP.NET smetta di funzionare e restituisca l'errore "Auto-attach to process '[ID] aspnet_wp.exe' on machine 'NOMEMACCHINA' failed. Error code 0x8013134b.".
Nessuna stranezza, infatti quando si installa Visual Studio 2005 questo configura automaticamente IIS per utilizzare la versione 2.0 di aspnet_wp.exe, ma questo non influisce sulle applicazioni basate sul framework 1.1 già esistenti, dato che il 2.0 è retrocompatibile. Il problema si presenta poi quando VS2003 cerca di attaccarsi al processo, non lo riconosce e restituisce l'errore.
La soluzione è deregistrare il nuovo working process, usando le seguenti istruzioni da Command Prompt:
cd C:\Windows\Microsoft.NET\Framework\v2.0.50215.44
aspnet_regiis.exe -u
e poi ri-registrare la versione 1.1 con le seguenti istruzioni:
cd C:\Windows\Microsoft.NET\Framework\v1.1.4322
aspnet_regiis.exe -i
Allego due piccoli file .bat per automatizzare le procedure di passaggio: prima di usarli vi consiglio di controllare i percorsi in essi definiti. Segnalo dei tool visuali per fare questo passaggio, per maggiori informazioni rimando a questo link: http://www.denisbauer.com/NETTools/ASPNETVersionSwitcher.aspx
Attenzione: quando registrerete IIS per utilizzare la versione 1.1, le applicazioni scritte con la versione 2.0 del framework smetteranno di funzionare!!
Se per voi è un problema cambiare continuamente working process utilizzando i file .bat o ASPNETVersionSwitcher, oppure se avete bisogno di utilizzare contemporaneamente applicazioni 1.1 e 2.0, c'è un utile opzione del comando aspnet_regiis che ci permette di registrare una differente versione del framework per ogni applicazione web della nostra macchina.
Quindi se il nostro webserver è registrato con il framweork 1.1 e abbiamo esigenza che la nostra applicazione "DemoASPNET20" giri con la versione 2.0 scriveremo:
aspnet_regiis.exe -s W3SVC/1/ROOT/DemoASPNET20
Se vogliamo visualizzare lo stato delle registrazioni del framework possiamo usare il seguente comando
aspnet_regiis.exe -lk
il cui output nel nostro caso sarà:
W3SVC/ 1.1.4322.0
W3SVC/1/ROOT/DemoASPNET20/ 2.0.50215.44
Si ha sempre la possibilità di resettare la nostra applicazione in modo che torni ad usare la versione di default del framework, con il comando
aspnet_regiis.exe -k W3SVC/1/ROOT/DemoASPNET20