【问题标题】:Operation contract name is different but is still throwing errors操作合约名称不同但仍然抛出错误
【发布时间】:2015-01-02 15:06:45
【问题描述】:

我有一个 WCF 服务,它具有与以下操作合同的接口:

    [OperationContract(Name = "uploadFile")]
    void uploadFile(RemoteFileInfo request);

    [OperationContract(Name = "uploadFileAsync")]
    Task uploadFileAsync(RemoteFileInfo request);

当我尝试托管此服务时,它给了我一个错误,即我不能拥有 2 个同名合同,并且“uploadFile”和“uploadFIleAsync”违反了此规则。如您所见,我将它们命名为不同的名称,其中一个只是 uploadFile,一个是 uploadFileAsync,那么 WCF 如何将它们视为“同名”?

【问题讨论】:

    标签: c# wcf asynchronous


    【解决方案1】:

    当您创建 OperationContract 时,WCF 会自动为您创建方法的异步版本。 WCF 将此方法命名为与原始方法相同,但最后附加为 Async。话虽如此,你有两个方法叫做uploadFileAsync,所以你得到了错误。因此,将您的界面更改为:

    [OperationContract]
    void uploadFile(RemoteFileInfo request);
    

    您仍然可以通过以下方式在客户端中调用您的方法:

    var result = await client.uploadFileAsync(request);
    

    【讨论】:

      猜你喜欢
      • 2013-03-12
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多