来自webservice的响应:不允许使用方法

时间:2014-01-22 08:10:04

标签: c# wcf web-services post

我有一个带有以下OperationContract的.net网络服务:

    [OperationContract]
    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "testing2?coName={coName}&password={password}")] 
    string testing2(string coName, string password);   

尝试从我的本地主机访问时:

http://.../service1.svc/testing2?coName=abcd&password=1234qw

(...是我当地的主人)

我在浏览器中收到以下回复:

服务

不允许使用方法。

3 个答案:

答案 0 :(得分:1)

如果要调用期望类型为POST的方法,则应该对其进行POST,否则将无法正确注册。如果你通过访问它的URL调用这样的方法,它将拒绝访问(这是GET方法,这就是它以前工作的原因)。如果您实际上没有在正文中发布一些数据,如果要使用URL调用它,请切换回GET。

答案 1 :(得分:0)

尝试在此网络服务上启用匿名访问

<security>
 <authentication>
  <anonymousAuthentication enabled="true" />
 </authentication>
</security>

答案 2 :(得分:0)

不允许的方法有错误代码HTTP错误代码405.您获得的可能原因是因为缺少Request属性Accept。 我真的不想给你一个错误的代码,因为我不知道wcf,但这是你设置连接后可以做的,

connection.setRequestProperty("Accept", "*/*");

您需要找到可以在wcf中实现此任务的类似方法。

阅读this page了解详情。

另一个原因是如果在Web服务端不允许使用特定方法POST,那么当您不允许使用方法时。