如何为 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:如何为枚举值指定自定义名称?

如何为自定义类的参数指定类型提示? [复制]

如何为 iPhone 6/7 自定义边到边图像指定尺寸?

EF 5 + SQL Server CE 4:如何为数据库文件指定自定义位置?

如何为空输入(而不是默认的+Inf和-Inf)指定R中Max,Min的自定义返回值?