2016-03-01 36 views
7

Introduzione:(405) Metodo non consentito. WCF WebService

Ciao, sto cercando di creare un servizio Web WCF sul mio server locale IIS 7.5, ma dopo aver finito le configurazioni di base non sono in grado di inviare i dati con un client WinForms di prova e ritorna l'errore menzionato nei titoli. Ho già cercato thread simili su questo problema ma non ho trovato nulla che si adattasse al mio problema.

dati:

-Sia il WebService WCF e il client di prova se previsto da un 3rd party

-Hanno già lavorare su un altro server e sto usando le stesse versioni

-Sono probabilmente facendo qualcosa di sbagliato quando ho abilitare o configurare IIS

Richiesta:

-I bisogno di sapere cosa IIS caratteristiche che ne per abilitare/disabilitare per installarlo correttamente in modo da poter utilizzare il Wcf WebService. (Se è così).

-Come configurare correttamente il server per risolvere l'errore sopra indicato.

miei Configurazioni:

-Dopo Installazione di IIS ho cambiato il DefaulAppPool a .NET Framework v4.0.30.319; modalità pipeline: integrata. -Impostazioni avanzate: Carica profilo utente = Falso.

-Creato un nuovo sito Web denominato "WcfMicrocontrollerService" utilizzando DefaultAppPool.Binding; Tipo: http, indirizzo IP:, porta: 80

A questo punto posso accedervi tramite un browser Web, tuttavia quando uso il client di test per i dati POST al servizio ottengo il seguente errore: "Il remoto il server ha restituito una risposta imprevista: (405) Metodo non consentito. "

Qui ci sono i pacchetti di dati inviati come registrato da Fiddler: Sent:

POST http://192.168.0.102/MicroControllerComSvc.svc HTTP/1.1 
Content-Type: text/xml; charset=utf-8 
SOAPAction: "http://tempuri.org/IMicroControllerComSvc/GetMicrocontrollerData" 
Host: 192.168.0.102 
Content-Length: 237 
Expect: 100-continue 
Accept-Encoding: gzip, deflate 
Connection: Keep-Alive 

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetMicrocontrollerData xmlns="http://tempuri.org/"><microControllerData>1,1,1,1,2,2,1,0,100,300</microControllerData></GetMicrocontrollerData></s:Body></s:Envelope> 

ricevute:

HTTP/1.1 405 Method Not Allowed 
Cache-Control: private 
Allow: GET, HEAD, OPTIONS, TRACE 
Content-Type: text/html; charset=utf-8 
Server: Microsoft-IIS/7.5 
X-Powered-By: ASP.NET 
Date: Tue, 01 Mar 2016 10:44:44 GMT 
Content-Length: 5671 

Ed ecco il corpo: https://dl.dropboxusercontent.com/u/2237590/405.html

Questo sembra indicare che Dovrei dare un'occhiata alle mappature del gestore ma non ho idea di cosa modificare lì.

risposta

17

Ok, quindi, dopo una breve ricerca su tuo problema ho trovato la seguente questione WCF on IIS8; *.svc handler mapping doesn't work

Ignorando il fatto che la questione è di circa 8 IIS, sono in esecuzione Windows o Windows Server?

Se si utilizza Windows vai a ...

  • Pannello di controllo -> Programmi -> Programmi e funzionalità> funzionalità di Windows attiva o disattiva. Sotto ".Net Framework 3.5 (Invlucdes .NET 2.0 e 3.0 "sezione
  • assicurarsi che" Attivazione HTTP di Windows Communication Foundation "sia attivato.
  • Controllare anche in" .NET Framerwork 4.x Advanced Services "e in" Servizi WCF "controllare per assicurarsi che l'attivazione HTTP sia attivata su anche lì.

Questa è una foto da questa domanda che mostra il cambiamento .net 4.5 per fare. Features to turn on

Se si utilizza Windows Server prova a seguire la prima risposta alla domanda riguardo alle modalità di impostare il ruolo utilizzando il gestore server.

+0

Sono riuscito a far funzionare il servizio Web su un altro computer su cui è installato Windows 10 (IIS 10) e le istruzioni, laddove applicabile. Tuttavia con Windows 7 SP1 ho solo l'opzione .Net Framework 3.5 e ottengo l'errore 500.21 dopo aver abilitato l'attivazione HTTP ma non sono più bloccato e dovrei essere in grado di risolvere il problema da solo. Stavo cercando nel posto sbagliato e non l'avrei mai capito. Grazie mille! –

+0

Sono felice che questo abbia aiutato – simlawstu

+0

Ciò ha davvero aiutato - ha funzionato bene in Server 2016 Preview 5 - Penso che abbia installato quasi tutte le funzionalità per impostazione predefinita. Dopo un'installazione pulita di Server 2016 Standard questo bit mi stava facendo impazzire e sappiamo tutti quanto sia stressante lavorare su un programma :-) – gchq