7

我有一个托管在 Windows 服务上的 WCF 服务,并使用 BasicHttp 端点为已连接到它的 Windows Mobile 设备提供服务。

问题在于设备模拟器。我可以连接到该服务并毫无问题地使用它,但可以使用实际设备。我收到错误:

WCF 请求失败,HTTP 状态为 405:方法不允许。

我使用以下代码来实现该服务。

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

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

我怎么解决这个问题?

4

3 回答 3

4

检查您的 IIS 扩展,尤其是 .wsdl 的扩展是否有效:

在 IIS 中:

  • 查看您网站的属性。
  • 在主目录选项卡中,单击配置。
  • 点击添加(我的路径是“C:\Program Files (x86)\Common Files\MSSOAP\BINARIES\SOAPIS30.DLL”)
  • 将扩展名设置为 .WSDL 并允许“获取”和“发布”
  • 选择“脚本引擎”和“验证文件是否存在”

应该是这样的。

于 2009-01-19T16:42:35.040 回答
1

如果您使用的是 WCF REST 服务,您应该像这样定义您的合同方法:

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

特别注意WebInvoke属性和Method="POST".

于 2015-04-01T06:33:35.143 回答
0

使用 WCF 时,您可能还需要将 .svc 文件类型映射到 IIS 中的 aspnet_isapi.dll。

于 2009-03-27T19:24:55.877 回答