WCF 请求失败,HTTP 状态为 405:方法不允许
我有一个 WCF 服务,该服务托管在 Windows 服务上,并使用 BasicHttp 端点为已连接到它的 Windows Mobile 设备提供服务。
问题出在设备模拟器上。 我可以连接到该服务并使用它,没有任何问题,但使用的是实际设备。 我收到错误:
WCF 请求失败,HTTP 状态为 405:方法不允许。
我使用以下代码来实现该服务。
BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
basicHttpBinding.UseDefaultWebProxy = false;
m_ServiceHost.AddServiceEndpoint(typeof(IKooft), basicHttpBinding, "KooftService");
m_ServiceHost.Open();
我怎么解决这个问题?
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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
检查您的 IIS 扩展,尤其是 .wsdl 的扩展是否有效:
在 IIS 中:
配置。
“C:\Program Files (x86)\Common
Files\MSSOAP\BINARIES\SOAPIS30.DLL" )
“获取”和“发布”
引擎”和“验证文件存在”
应该就是这样。
Check your IIS extensions, particularly those for .wsdl are valid:
In IIS:
configuration.
"C:\Program Files (x86)\Common
Files\MSSOAP\BINARIES\SOAPIS30.DLL" )
"Get" and "Post"
Engine" and "Verify That File Exists"
That should be it.
如果您使用的是 WCF REST 服务,您应该像这样定义您的契约方法:
特别注意
WebInvoke
属性和Method="POST"
。If you are using a WCF REST service, you should define your contract method like this:
Particularly note that
WebInvoke
attribute andMethod="POST"
.使用 WCF 时,您可能还需要将 .svc 文件类型映射到 IIS 中的 aspnet_isapi.dll。
When using WCF you might also need to map the .svc file type to aspnet_isapi.dll in IIS.