2009-07-08 9 views
10

mie applicazioni Web create in VS 2008 su Windows Server 2003, si rifiutano di aprire in VS 2008 su Windows Server 2008.Come aggiornare IIS 6 web app, quindi si apre in Visual Studio sul computer che esegue IIS 7

" Il progetto di applicazione Web "MyProjectName" è configurato per l'utilizzo di IIS. Per accedere ai siti Web IIS locali, è necessario installare i seguenti componenti IIS: IIS 6 Metabase e IIS 6 Configuration Compatibility Authentication ".

Non voglio avere nulla a che fare con IIS 6, quindi non sto installando questi componenti. Voglio puro IIS 7.

C'è uno strumento di aggiornamento o qualcosa che posso modificare nel file di progetto che consentirà loro di aprire in Visual Studio?

+0

Questo messaggio riguarda solo i siti Web IIS locali, non il sito di produzione. –

+0

Sì, l'ho aperto aprendo l'ultima sezione . In particolare, lo che ha specificato l'URL dell'host locale. Ma, se uso lo stesso URL, con il tag , ed eseguo Visual Studio come amministratore, funziona! Quindi, wtf? È lo stesso URL locale, ma se lo chiamo, allora non funziona? Oh mio Dio. – Triynko

+0

Il sito di produzione è locale. Se inserisco l'URL locale sotto "Usa server Web personalizzato", funziona. Se metto l'URL locale SAME sotto l'opzione "Usa server Web IIS locale" proprio sopra, mi dà quell'errore. È ridicolo. – Triynko

risposta

13

Questo è strano. L'unica cosa che sostituisco è "<IISUrl> http://localhost/site </IISUrl>"; con "<CustomServerUrl> http://localhost/site </CustomServerUrl>" nel file di progetto e il progetto carica e esegue il debug (come admin) bene.

Perché questo cambiamento nel nome del tag, che sembra fornire le stesse informazioni - l'URL del progetto - sufficiente per impedire il caricamento dell'intero progetto. Inaccettabile.

+0

Ho avuto lo stesso problema. La tua patch funziona alla grande !! Vorrei che tu dessi un riferimento a dove hai trovato queste informazioni. – MattSlay

+0

Nessun riferimento esiste, perché l'ho capito da solo. Entrambi i tag erano presenti e ho appena provato a spostare l'URL da un tag all'altro e ho eliminato il tag IISUrl, e ha funzionato. È solo che se si utilizza il tag IISUrl, si prevede che alcune funzionalità siano presenti sul server che richiedono le funzionalità di compatibilità di IIS 6. Se si utilizza CustomServerURL, immagino che utilizzi funzionalità generiche ed eviti di utilizzare funzionalità specifiche di IIS. I tag dicono tutto, sono solo sorpreso che ciò provochi un fallimento del progetto senza alcun tipo di opzioni di ripristino ... solo CRASH. – Triynko

+0

Ho provato questo, ma credo che funzioni "solo" perché Visual Studio ritorna semplicemente all'utilizzo del server Web di sviluppo, Cassini e non IIS. Se poi vado nelle proprietà del progetto >> Web, e provo a farlo utilizzare di nuovo IIS, restituisce lo stesso errore relativo alla necessità del componente Compatibilità IIS 6 .... Qualcuno può confermare o non confermare questo sospetto? –

1

Poiché un tag sta dicendo che IIS ospita il sito e l'altro sta dicendo che un server Web personalizzato (altro) è.

Nel server personalizzato, VS non tenta di gestire nulla.

In IIS, che vuole essere in grado di configurare le cose come le directory virtuali, autorizzazioni, ASP.NET config, ecc

giudicare dal messaggio di errore, VS ritiene che il computer locale non è impostato con il componenti ha bisogno di farlo.

+1

Quale server Web diverso da IIS, in esecuzione su localhost (lo stesso computer su cui è in esecuzione Visual Studio) ospiterà un" Progetto di applicazione Web ASP.NET "? , questo è quello che pensavo, IIS: sono d'accordo sul fatto che sembra che i componenti di IIS 6 debbano essere installati, ma ciò significa che Visual Studio 2008 non è in grado di gestire i siti creati per la versione di IIS (7) creata per Windows Server 2008? In ogni caso, Visual Studio dovrebbe solo indirizzare gli utenti all'applicazione di gestione IIS in modo che imparino a utilizzarli bene, piuttosto che distoglierli temporaneamente con un sottoinsieme ah @ lf- @ ss3d delle sue funzionalità. – Triynko

+0

MONO. gli endpoint di servizio possono permetterti di fare) –

+1

Screw "rolling your own" Non dovremmo reinventare la ruota per eseguire un semplice sito! Stiamo semplicemente cercando di usare IIS e gestire un sito Web frying! Semplice! non possiamo semplicemente eseguire a semplice sito web in IIS7 senza questo schifo di cornball con IIS 6 che è irragionevole e fuorviante. Oggi ho avuto lo stesso problema e penso sia ridicolo che non possiamo aprire un progetto WAP in VS 2008 senza dover installare i componenti di IIS 6. L'intero scopo di IIS 7 non è "migliore"? Voglio dire, se abbiamo un nuovissimo progetto .NET 3.5, perché dovremmo anche toccare IIS 6! Non è dedotto ed è solo strano. – PositiveGuy

0

È necessario accedere a Pannello di controllo, attivare o disattivare le funzionalità di Windows, espandere Internet Information Services e trovare la casella di controllo "Compatibilità di configurazione IIS 6 di metabase e IIS 6". Questo problema fisso nel mio caso (ma io sono su Windows 7)

In dettaglio qui: http://msdn.microsoft.com/en-us/library/aa964620.aspx

+0

-1: ha dichiarato esplicitamente che non desidera avere nulla a che fare con IIS 6. –

+0

Spiacente, ho letto erroneamente. – algiecas

+0

+1 perché, nonostante il rifiuto del poster originale di un simile approccio, è un'alternativa rapida e pratica per un grande negozio in cui le modifiche alla configurazione del progetto hanno un maggiore impatto potenziale. – Jollymorphic

1

ho avuto una apertura di un progetto di applicazione Web che avevo aggiornato in precedenza da Net 1.1 Visual Studio problema simile 2008 mi ha impedito di aprire il progetto sul server guest virtuale perché sul mio sistema operativo host non ho IIS o componente correlato installato la soluzione è fare clic destro sul nome del progetto che non riesce a caricare - in alternativa, aprire il file .csproj all'interno del proprio filesystem - e cambia il nodo UseIIS su false

1

Un altro poster ha postato il seguente:

Hai bisogno di andare al Pannello di controllo, Girare funzionalità di Windows on o off, espandere Internet Information Services, e la casella di controllo find "IIS 6 e la metabase IIS 6 compatibilità di configurazione ".Questo Risolto il problema nel mio caso (ma sono in di Windows 7)

Nonostante il fatto che questa casella di controllo in Windows 7 ha le parole 'IIS 6' in essa, non sembra implicare che non è possibile utilizzare IIS 7. In realtà, il suggerimento per la casella di controllo abilita "IIS 6 Metabase e IIS 6 compatibilità di configurazione" dice quanto segue:

"Installare metabase IIS e livello di compatibilità per consentire alle chiamate della metabase di interagire con il nuovo archivio di configurazione di IIS 7. "

A me sembra che questo abbia poco a che fare con IIS 6 e tutto ciò con la configurazione di IIS 7 per interagire con le applicazioni legacy. Inoltre, facendo clic su questa casella di controllo ho risolto questo problema per me.

+0

Se si tratta di una porzione di IIS 6 che interagisce con IIS 7 o una vecchia porzione di codice IIS 6 in esecuzione in IIS 7, il risultato finale è che consente ai protocolli legacy di funzionare. Non voglio che i protocolli legacy funzionino. Se non funziona puramente su IIS 7, voglio farlo andare in crash, quindi so che devo aggiornarlo. – Triynko

2

Ho avuto lo stesso problema con un'aggiornamento di app Web da VS2003 a VS2010. Nel file soluzioni, c'era una sezione che si presentava così:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyProject", "http://localhost/MyProject/MyProject.csproj", "{B5D94F04-9681-4391-8323-E39BE66CD0C1}" 
    ProjectSection(ProjectDependencies) = postProject 
    EndProjectSection 
EndProject 

ho sostituito il "http: //localhost/MyProject/MyProject.csproj" con "MyProject.csproj". Ho anche eliminato il file MyProject.csproj.webinfo, perché aveva un riferimento alla stessa directory virtuale IIS.

Una volta apportate queste due modifiche, la procedura guidata di conversione VS2010 sembrava funzionare correttamente e la mia app Web aperta. Il mio progetto non dipendeva più da IIS.

+0

Questo ha funzionato perfettamente - grazie –

0

Aprire il file * .csproj nel blocco note e trovare tutti i riferimenti su True, impostarli su false.

Il progetto si aprirà. È possibile modificare ulteriormente le proprietà utilizzando la GUI se lo si desidera (porta, url, ecc.)

Problemi correlati