2010-04-09 8 views
58

Recentemente ho creato un servizio WCF che funziona correttamente quando testato da Visual Studio 2008. ma quando distribuisco il progetto in IIS e provo ad accedere al file .svc da IIS, ottengo questo errore:HTTP 404 durante l'accesso al file .svc in IIS

"Server Error in '/' Application.The resource cannot be found. " 

Ho riscontrato questo problema negli ultimi 4 giorni.

nelle Mapping gestori di Gestione IIS, posso vedere due voci per .svc:

svc-Integrated and svc-ISAPI-2.0 

risposta

62

è necessario aggiungere un mapping per l'estensione SVC a ASP.NET. Il modo più semplice per eseguire questa operazione è eseguire ServiceModelReg.exe -i da C: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation. Potrebbe anche essere necessario abilitare ASP.NET se non lo si è già fatto.


Se si utilizza Windows Server 2012, seguire queste istruzioni invece:

+0

Lo eseguo ma ancora non funziona. – Attilah

+0

Hai provato a riavviare IIS in seguito? – tvanfosson

+0

sì, ho eseguito iisreset. – Attilah

1

verifica che la directory è stata convertita in una domanda è la vostra IIS.

3

Vedo che hai già risolto il problema - ma per i posteri:

Abbiamo avuto un problema simile, e il gestore di SVC è stato già installato in modo corretto. Il nostro problema erano le richieste di elaborazione del gestore ExtensionlessUrl prima che raggiungessero il gestore SVC.

Per controllare questo - nei gestori di mapping in Gestione IIS a livello di server Web, visualizzare l'elenco di gestori in ordine (è un'opzione sul lato destro). Se i vari gestori ExtensionlessUrl vengono visualizzati sopra i gestori SVC, quindi spostarli ripetutamente verso il basso finché non si trovano nella parte inferiore.

1

Ho avuto lo stesso problema di oggi.

Per me, la soluzione era di accedere a IIS, fare clic con il pulsante destro del mouse sul nuovo nome del sito Web, selezionare Proprietà, ASP.Net e modificare la versione di ASP.Net da "1.1.4322" (che era stata impostata come predefinito) a 2.0.50727.

Una volta eseguito, è possibile fare clic con il pulsante destro del mouse sul file .svc, fare clic su "Sfoglia" e visualizzare la pagina Web del servizio.

44

ho trovato these instructions on a blog post che indicava questo passo, che ha lavorato per me (Windows 8, a 64 bit):

Assicurarsi che nella funzionalità di Windows, si dispone di entrambe le opzioni WCF sotto NET Framework siano selezionate. Quindi vai su Pannello di controllo -> Programmi e funzionalità -> Attiva/disattiva funzionalità Windows -> Funzionalità -> Aggiungi funzionalità -> Funzionalità .NET Framework X.X. Assicurati che .Net framework dice che è installato, e assicurati che il nodo di attivazione di WCF sotto di esso sia selezionato (checkbox spuntato) ed entrambe le opzioni sotto l'attivazione di WCF siano anche controllate.
These are: 
* HTTP Activation 
* Non-HTTP Activation 
Both options need to be selected (checked box ticked).
+1

Se potessi sopravvivere più di una volta, questa sarebbe stata la guida me NUTS, evviva! –

+0

impressionante grazie – nologo

0

Nel mio caso, l'errore è stato causato da impostazioni di mapping non corrette nel file ApplicationHost.config (\ System32 \ inetsrv \ config). Per qualche ragione, Visual Studio 2013 lo ha danneggiato durante la creazione di una directory virtuale in IIS. La correzione era di modificare manualmente la sezione siti nel file.

55

Quello che ha funzionato per me, In Windows 2012 Server R2:

WCF HTTP 404

Grazie va a "Aaron D"

+5

questo è buono per Windows 10 anche –

+1

Di gran lunga l'opzione più semplice. – BIDeveloper

+1

Questo era il trucco su Windows 10, grazie :) –

0

Ci sono 2 Versione di .NET Framework sono riportati sotto delle funzioni del ruolo aggiuntivo/funzionalità nel server 2012

a. 3.5

b. 4.5

In base al framework utilizzato è possibile abilitare HTTP-Activation in servizi WCF. :)

0

Nel mio caso Win 10. il file applicationHost.config è danneggiato da VS 2012. È possibile ottenere la copia della cronologia di questo file in C: \ inetpub \ history. Quindi riavviare IIS e funziona correttamente.

1

Questo può anche diventare un problema dopo aver abilitato la compatibilità di gestione di IIS 6 in Windows 10. L'impostazione dell'attivazione HTTP framework in Servizi WCF risolverà il problema.

Problemi correlati