2012-04-16 57 views
0

我无法在RESTful WCF服务中访问任何具有[webinvoke]属性的方法。无法使用WCF Restful服务中的属性[WebInvoke]访问任何方法

我的代码是这样的:

[OperationContract] 
[WebInvoke(Method = "Post", UriTemplate = "Comosite/{composite}", ResponseFormat = WebMessageFormat.Xml)] 
CompositeType GetDataUsingDataContract(string composite);   

在执行上面的服务我收到一条错误消息,不允许

方法。

我尝试了很多方法,通过修改urltemplate,方法名称和方法类型等,但没有任何工作。

但是,如果我使用[WebGet]属性的服务方法工作正常。

有人可以建议我,我能做些什么使它工作?

在此先感谢... :)

+0

的事情是我想执行后/ PUT /删除操作。使用get我可以从服务中获取日期,但事情是我只是不想获取数据,我想对数据执行更新和删除操作。为此,我正在使用webinvoke和post方法进行测试。如果post方法工作正常,那么我可以继续进行删除和放置方法。 – user1335978 2012-04-16 12:08:54

+0

请查看http://msdn.microsoft.com/en-us/library/bb472541(v=vs.90).aspx – Milee 2012-04-16 12:20:37

+0

你能展示一些你用来调用你的服务的代码吗? – Bassetassen 2012-04-16 18:22:29

回答

1

尝试改变

[WebInvoke(Method = "Post", UriTemplate = "Comosite/{composite}", ResponseFormat = WebMessageFormat.Xml)] 

[WebInvoke(Method = "POST", UriTemplate = "Comosite/{composite}", ResponseFormat = WebMessageFormat.Xml)] 
1

我创建为你在这里做了类似的服务,并与小提琴手叫它和工作时,我改变了方法POST全部使用大写字母。当方法与您的代码中的Post类似时,我会得到未找到端点的消息。

我拉琴的要求是这样的:

http://localhost/service/service1.svc/Comosite/test 

这里测试中发送作为复合参数,我得到一个CompositeType作为XML返回。