如何为 WCF 指定自定义 SoapAction
Posted
技术标签:
【中文标题】如何为 WCF 指定自定义 SoapAction【英文标题】:How to specify custom SoapAction for WCF 【发布时间】:2011-03-12 16:16:47 【问题描述】:我正在创建一个将从另一个服务调用的 WCF 服务。
在WSDL中soapaction出现如下
<soap12:operation soapAction="http://tempuri.org/ISubscriptionEvents/MyMethod" style="document" />
我希望它是
<soap12:operation soapAction="http://www.TextXYZ.com/FUNC/1/0/action/MyMethod" style="document" />
如何指定自定义肥皂动作?
【问题讨论】:
【参考方案1】:你也可以在操作合约上指定Action
属性:
[ServiceContract]
public interface IMyServiceContract
[OperationContract(Action = "http://www.TextXYZ.com/FUNC/1/0/action/MyMethod")]
void MyMethod();
如果需要,您也可以设置ReplyAction
。
Darin 的回答将根据命名空间、合约名称和操作名称来设置操作,这样使用起来要容易得多,但如果您需要将操作设置为您想要的确切内容,则可能无法正常工作。
【讨论】:
【参考方案2】:您可以在服务合同定义中指定它:
[ServiceContract(Namespace = "http://www.TextXYZ.com/FUNC/1/0/action")]
public interface IMyServiceContract
[OperationContract]
void MyMethod();
【讨论】:
以上是关于如何为 WCF 指定自定义 SoapAction的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Jcrop 'setSelect' 选项指定自定义值?
System.Text.Json:如何为枚举值指定自定义名称?