views:

4655

answers:

2

I have a WCF service that has been hosted on a Windows Service and uses 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 "WCF The request failed with HTTP status 405: Method Not Allowed." error.

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();

Can anyone tell me how can I solve this problem?

+3  A: 

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.

WillH
As I mentioned, it is hosted on a Windows Service application not IIS.
Mohammadreza
SOAPIS30.DLL is missing on my development box and I am experiencing a similar issue. Do you have any idea where I can get that DLL from? What SDK is it part of?
Danielb
To answer my own question that DLL comes from the deprecated Microsoft SOAP Toolkit.
Danielb
A: 

When using WCF you might also need to map the .svc file type to aspnet_isapi.dll in IIS.