我有一个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();
我该如何解决这个问题?
答案 0 :(得分:4)
检查您的IIS扩展名,尤其是.wsdl的扩展名有效:
在IIS中:
应该是它。
答案 1 :(得分:1)
如果您使用的是WCF REST服务,则应该像这样定义合同方法:
[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]
string CheckService();
特别注意WebInvoke
属性和Method="POST"
。
答案 2 :(得分:0)
使用WCF时,您可能还需要将.svc文件类型映射到IIS中的aspnet_isapi.dll。