2013-10-18 10 views
27

Ho un progetto di sito web utilizzando Visual Studio 2013 e ogni volta che l'apro, mantiene l'aggiunta di una nuova voce per il sito web del progetto in applicationHost.config. Io uso IISExpress per il mio sviluppo, tuttavia ho sempre creare una voce personalizzata per fornire alcune specifiche e ce l'ho configurato per utilizzare la porta 80, quindi mi piacerebbe non avere Visual Studio apportare le modifiche a questo file.arresto di Visual Studio 2013 che modifica l'IISExpress applicationHost.config

Sono entrato in Strumenti> Opzioni> Progetti Web e deselezionato "Utilizza la versione a 64 bit di IIS Express per siti Web e progetti", ho chiuso la soluzione, rimosso la voce da applicationHost.config e riaperto il progetto in Visual Studio, tuttavia continua ad aggiungere una voce a applicationHost.config e ad assegnare un nome al progetto del mio sito Web, a prescindere dal nome di tale voce.

Esiste un modo per staccare Visual Studio interamente da IISExpress? Mi piace usarlo, ma voglio controllare personalmente il servizio e la configurazione.

risposta

0

nelle proprietà del progetto, vedo una scheda "Web", che contiene una sezione "Server" che ha un menu a discesa in cui è possibile scegliere tra le seguenti:

  • IIS espresso
  • locale IIS
  • Host esterno

Credo che selezionare "IIS locale" sia l'opzione necessaria.

+0

Questo è un progetto "sito Web", non un progetto di "applicazione Web". Non esiste una scheda "Web" all'interno delle proprietà del progetto. Vorrei che fosse così semplice. –

4

How to: Specify a Port for the Development Server

ho appena provato il metodo descritto nel suddetto articolo MSDN cambiare la porta IIS utilizza esplicite (non provate 80 però).

  1. tasto destro del sito in Esplora soluzioni, rimuovere (non eliminare i file)
  2. Modificare il file applicationHost.config, cambiare il legame
  3. "Aggiungi sito web esistente" in Visual Studio (punto a la cartella di sito è stato rimosso in precedenza)

a quel punto non sembra creare una nuova voce nel applicationHost.config, e utilizza il nuovo porto.

+0

Sembrava promettente, tuttavia ogni volta che selezionavo un'opzione dal pool "Local IIS" come indicato nell'articolo MSDN, si tenta di aggiungere il sito da Id = "1" a prescindere da quale sia stato specificato. È quasi come se fosse un bug in Visual Studio. Può essere perché tutti i siti configurati nell'elemento utilizzano la porta 80, non sono sicuro. Inoltre, ma non sono riuscito ad arrivare troppo in là, potrebbe esserci un problema se il sito Web era sotto controllo del codice sorgente (che è), cercando di riaggiungerlo. –

+0

Non ho seguito i passaggi relativi alla scheda "IIS locali" mentre lo stavo provando. Per essere chiari, sono stato in grado di cambiare il numero di porta in questo modo e non è stata creata nessuna nuova entry in applicationHost.config, ma stavo impostando la porta su cose come 55456, niente di speciale come la porta 80. Quando l'ho provato con 80, ho ottenuto questo errore: Errore durante l'apertura di http: // localhost web. Il sito per l'URL 'http: // localhost' esiste sia sul server Web IIS locale che sul server Web IIS Express. È necessario modificare il file 'applicationhost.config' per modificare il numero di porta in uso da IIS Express. – Anssssss

+0

Stesso problema. Anche aggiungendo un sito esistente dal file system, tenta di aggiungere il record del sito con Id = "1" in applicationHost.config, nonostante fornisca esplicitamente il percorso all'altro progetto web (che è come Id = "8" I credere). Sinceramente penso che questo comportamento non dovrebbe essere previsto e presenterò una segnalazione di bug a Microsoft. –

0

Se non si desidera utilizzare un server di sviluppo locale, è possibile allegare a un processo IIS su un computer locale molto facilmente.

C'è un modo per impostare il percorso di output di generazione per il debug nelle proprietà (progetto tasto destro del mouse in Esplora soluzioni e selezionare 'Proprietà). Se si vuole farlo facilmente la prima volta con alcuna installazione supplementare, basta copiare e uscita del vostro build di debug alla cartella sito web che si è configurato in IIS.

Avanti, garantire la si può colpire il sito IIS. In tal caso, torna a Visual Studio e vai alla voce di menu Debug-> Collega a processo. Scegli "w3wp.exe" dall'elenco (potresti dover controllare "visualizza tutti i processi"). Ora dovresti essere in grado di raggiungere i breakpoint in VS.

Tuttavia, si dovrebbe anche essere in grado di utilizzare IIS Express con una porta specifica, come ha detto @Anssssss.

+0

Potrei usare IIS, ma l'obiettivo qui è provare a usare IISExpress. –

+0

Hai detto "disconnetti", che ho inteso per "rimuovere la dipendenza da" IIS Express. Dispiace per la confusione. – ps2goat

2

Abbiamo lo stesso problema qui. Due giorni su google per una soluzione senza successo. L'unica soluzione fino ad ora è quello di aggiungere il sito alla soluzione utilizzando l'opzione di IIS locale.

+0

Grazie, ha funzionato per me. Spero che lo risolveranno. –

20

All'interno della sezione binding della sezione di sito, creare una nuova associazione in aggiunta alla versione localhost modo:

<bindings> 
    <binding protocol="http" bindingInformation="*:21232:localhost" /> 
    <binding protocol="http" bindingInformation="*:21232:*" /> 
</bindings> 

Dopo avere entrambe le linee, VS smesso fare nuove sezioni del sito.

+3

Penso di aver rintracciato quello che sta succedendo che fa funzionare questo. Il mio obiettivo era rendere il mio sito accessibile tramite la mia rete locale, quindi avrei modificato il tag per cambiare "\ *: port: localhost" in "\ *: port: *" Visual Studio, sulla costruzione del progetto di applicazione web, era cercando un binding con il nome del progetto che conteneva "*: port: localhost", e se non è riuscito a trovarne uno, ogni volta che creava il progetto aggiungeva una nuova voce. Il tuo cambiamento rende quindi VS mantenere le impostazioni corrette dopo la ricostruzione. – dhakim

+0

Funziona in vs2015. Espandendo ciò che ha detto dhakim, sembra che stia cercando di associare i binding all'URL del progetto nella sezione "Web" sotto le proprietà – bgura

1

mi sono imbattuto in questo problema quando stavo passaggio da un lavoro ad un altro TFS mentre sperimentava con VS2013. Mi sono aggiornato a VS2013 da VS2012 in un nuovo spazio di lavoro, quindi quando ho finito e ho eseguito i cambiamenti, ho ottenuto l'ultimo nel mio spazio di lavoro originale e ho iniziato a usarlo lì con VS2013. Ogni volta che caricavo il mio progetto web ricevevo il messaggio su di esso modificando il mio file di progetto, e ogni volta che lo faceva, rovinava le impostazioni.

Ecco come l'ho risolto, dopo aver provato le altre risposte qui. Un brutto file .csproj.user era il problema. Non utilizzo questo file, in genere, poiché ho la casella di controllo "Applica le impostazioni del server a tutti gli utenti (archivia nel file di progetto)" nelle proprietà Web selezionate. Ma l'avevo usato in passato. Cancellando questo file o aggiornandolo in modo che le impostazioni corrispondano a quelle che ho impostato nel file di progetto (ad esempio impostando la porta, se usare IISExpress, ecc.) Lo aggiustò. Ora posso caricare il mio progetto senza apportare modifiche (errate) allo studio visivo al mio file di progetto ogni volta che carico.

+0

Ho avuto lo stesso problema in cui VS stava reimpostando costantemente la porta SSL ogni volta che aprivo il progetto . Alla fine si è scoperto che le impostazioni nel file csproj.user stavano causando il problema. Ho eliminato il file e il problema è stato risolto. – kevin

Problemi correlati