Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WCF The request failed with HTTP status 405: Method Not Allowed

I have a WCF service that has been hosted on a Windows Service and uses the BasicHttp endpoint to serve Windows Mobile devices that has been connected to it.

The problem is that with the Device Emulator. I can connect to the service and using it without any problems, but with an actual device. I receive the error:

WCF The request failed with HTTP status 405: Method Not Allowed.

I have used following code to implement the service.

BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
basicHttpBinding.UseDefaultWebProxy = false;

m_ServiceHost.AddServiceEndpoint(typeof(IKooft), basicHttpBinding, "KooftService");
m_ServiceHost.Open();

How can I solve this problem?

like image 423
mrtaikandi Avatar asked Dec 15 '08 14:12

mrtaikandi


2 Answers

Check your IIS extensions, particularly those for .wsdl are valid:

In IIS:

  • Look at the properties for your site.
  • In the Home Directory tab, click configuration.
  • Click add (my path is "C:\Program Files (x86)\Common Files\MSSOAP\BINARIES\SOAPIS30.DLL" )
  • Set the extension to .WSDL and allow "Get" and "Post"
  • Select "Script Engine" and "Verify That File Exists"

That should be it.

like image 148
WillH Avatar answered Oct 31 '22 14:10

WillH


If you are using a WCF REST service, you should define your contract method like this:

[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]
string CheckService();

Particularly note that WebInvoke attribute and Method="POST".

like image 1
Oğuzhan Soykan Avatar answered Oct 31 '22 13:10

Oğuzhan Soykan