【问题标题】:How to specify custom SoapAction for WCF如何为 WCF 指定自定义 SoapAction
【发布时间】: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" />

如何指定自定义肥皂动作?

【问题讨论】:

    标签: c# .net asp.net wcf


    【解决方案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();
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-18
        • 2011-04-13
        • 1970-01-01
        • 2013-12-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多