1

我这辈子都做不出来。我有工作流服务,声明如下:

<WorkflowService mc:Ignorable="sap sap2010 sads" p1:TextExpression.Namespaces="{x:Reference __ReferenceID79}" p1:TextExpression.References="{x:Reference __ReferenceID80}" ConfigurationName="MyWorkflowService" sap2010:ExpressionActivityEditor.ExpressionActivityEditor="C#" sap2010:WorkflowViewState.IdRef="WorkflowService_1" Name="MyWorkflowService"

它实现了一个服务契约:

<WorkflowService.ImplementedContracts>
    <x:Type Type="ns:IWorkflowService" />
  </WorkflowService.ImplementedContracts>

我正在尝试启用工作流控制端点,以便我可以从远程客户端恢复暂停的工作流。所以我在 web.config 中添加了以下部分:

<services>
      <service name="MyWorkflowService">
        <endpoint binding="basicHttpBinding" name="BasicHttpBinding_IWorkflowService" contract="Name.Space.IWorkflowService" />
        <endpoint binding="basicHttpBinding" name="wceEndpoint" address="wce" kind="workflowControlEndpoint" contract="System.ServiceModel.Activities.IWorkflowInstanceManagement" />
      </service>
    </services>

但是每次我访问http://myhost.lan/service/MyWorkflowService.xamlx时,我都会收到以下消息:

在服务“MyWorkflowService”实施的合同列表中找不到合同名称“Name.Space.IWorkflowService”。

我的合同是这样的:

[ServiceContract(Name = "IService", Namespace = "http://mycompany/myservice/")]
    public interface IWorkflowService
    {
        [OperationContract]
        int DoStuff(string filePath);

        [OperationContract]
        [FaultContract(typeof(ThingNotFoundException))]
        void Take(string baseDirectory, int id);
    }

任何帮助将非常感激!

4

1 回答 1

0

反射器向我揭示了答案。我在配置中使用了错误的合约。

我应该一直在使用:

<endpoint binding="basicHttpBinding" name="BasicHttpBinding_IWorkflowService" contract="IService" />

我试过

http://mycompany/myservice/IService

但不是

服务

通过它自己。

于 2014-09-15T15:44:28.677 回答