Servizio ospitato in IIS non funziona

Se un servizio ospitato in IIS non funziona è possibile notare uno dei sintomi seguenti:

  • Quando si esplora un file con estensione svc, questo non viene riconosciuto, il browser visualizza una pagina vuota o viene visualizzato il testo del file invece della pagina della Guida del servizio come nell'esempio seguente.

    <%@ServiceHost language=c# Debug="true" Service="Microsoft.ServiceModel.Samples.CalculatorService" %>
    
  • Quando si tenta di accedere a un servizio ospitato sul Web, è possibile incontrare l'eccezione seguente.

    Unhandled Exception: System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (405) Method not allowed.
    

    Ciò accade in genere se ASP.NET non è installato o il tipo di file con estensione svc non è associato ad aspnet_isapi.dll.
    Per correggere questo problema è necessario assicurarsi che aspnet_isapi sia attivato come un'estensione del servizio Web per IIS. È possibile visualizzare e modificare questa impostazione utilizzando Gestione IIS o eseguendo aspnet_regiis –i –enable dalla directory di installazione di .NET Framework. Dopo avere eseguito l'operazione, verificare che ASP.NET sia in esecuzione. A tal scopo, inserire un file aspx di test nella directory \inetpub\wwwroot e assicurarsi che possa essere esplorata tramite un browser.

  • Se IIS è stato installato dopo Windows Communication Foundation (WCF), sarà necessario eseguire il comando seguente.

    "%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r
    

    Questo registra i mapping di script obbligatori in IIS.
    È necessario assicurarsi anche che il tipo di file con estensione svc sia associato a aspnet_isapi.dll.

Per verificare che il tipo di file con estensione svc sia associato in modo da essere gestito da aspnet_isapi.dll in IIS 5.1 o 6.0

  1. Aprire la console Gestione computer nel Pannello di controllo.

  2. Espandere Servizi e applicazioni, Internet Information Services.

  3. Fare clic con il pulsante destro del mouse su Siti Web e selezionare Proprietà.

  4. Nella scheda Home directory scegliere Configurazione.

  5. Nell'elenco dei mapping delle applicazioni, verificare che il tipo di file con estensione svc sia associato ad aspnet_isapi.dll. Se il file del file non è stato associato:

    1. Scegliere Aggiungi.
    2. Scegliere Sfoglia nella finestra di dialogo Aggiunta/Modifica mapping estensioni applicazioni.
    3. Individuare la cartella che contiene aspnet_isapi.dll, quindi scegliere Apri.
    4. Specificare .svc come estensione.
    5. Assicurarsi che Verifica esistenza del file sia deselezionata.
    6. Scegliere OK e di nuovo OK per ritornare alla finestra di dialogo Proprietà siti Web.
  6. Scegliere OK per chiudere la finestra di dialogo.

Per verificare che il tipo di file con estensione svc sia associato correttamente in IIS 7.0

  1. Aprire una finestra del prompt dei comandi e digitare start inetmgr per aprire lo snap-in MMC di Internet Information Services (IIS).

  2. Nel riquadro sinistro, espandere il nodo con il nome del computer, quindi espandere il nodo Siti Web e selezionare Sito Web Predefinito.

  3. Fare doppio clic su Mapping del gestore nella Visualizzazione funzionalità.

  4. Nell'elenco dei mapping delle applicazioni, verificare che il tipo di file con estensione svc sia associato ad aspnet_isapi.dll. Se il file del file non è stato associato:

    1. Scegliere Aggiungi gestore gestito.
    2. Digitare *.svc in Percorso richiesta:
    3. Digitare System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 nella casella di testo Tipo.
    4. Digitare svc-Integrated nella casella di testo Nome:.
    5. Scegliere OK.
    6. Scegliere Aggiungi mapping di script.
    7. Digitare *.svc in Percorso richiesta:
    8. Digitare %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll nella casella di testo Eseguibile:.
    9. Digitare svc-ISAPI-2.0 nella casella di testo Nome:.
    10. Utilizzando i controlli di spostamento verso l'alto o verso il basso, verificare che il gestore gestito (svc-Integrated) venga visualizzato prima del gestore aspnet_isapi (svc-ISAPI-2.0) nell'elenco.
    11. Scegliere OK.

Vedere anche

Concetti

Istruzioni per l'hosting su IIS (Internet Information Services)

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.