我正在从wsdl生成Web服务,并在其中包含一些带有属性的方法。
[System.ServiceModel.OperationContractAttribute(Action="http://link/update", ReplyAction="*")]
WebServices.updateResponse update(WebServices.updateRequest request);
当我尝试在VS2010项目中添加对此服务的引用时,根本没有任何方法。
更改属性后
[System.ServiceModel.OperationContract]
WebServices.updateResponse update(WebServices.updateRequest request);
这些方法都可用。
第一种情况有什么问题?
最佳答案
System.ServiceModel.OperationContract-是System.ServiceModel.OperationContractAttribute的简短版本。问题出在您的ReplyAction =“ *”破坏了您的元数据(意味着WsdlExporter将忽略该操作)。尝试将其设置为任何其他值。
从MSDN(http://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontractattribute.replyaction.aspx):
除了为操作标头指定特定值
在回复消息中,您还可以指定字符串“ *”(星号)。
在服务中指定星号指示WCF不要添加回复
对消息采取的措施,如果您针对
直接发送邮件。在客户端应用程序中指定星号
指示WCF不验证答复操作。
关于c# - 添加对Web服务的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15660844/