我有一个带有以下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
(...是我当地的主人)
我在浏览器中收到以下回复:
服务
不允许使用方法。
答案 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,那么当您不允许使用方法时。