Mensagem de erro: “Dois contratos diferentes têm o mesmo nome de configuração” ao baixar o WSDL de Xamlx no Appfabric Beta 2
-
25-09-2019 - |
Pergunta
Recebo a seguinte mensagem de erro quando tento usar svcutil
Para gerar um proxy de cliente para um xamlx
Arquivo que é hospedado pelo Appfabric Beta 2:
Dois contratos diferentes têm o mesmo nome de configuração
Entendo a mensagem, no entanto, não consigo encontrar sua causa ou como corrigi -la. Estou acompanhando o laboratório 'Introdução ao Workflow Services' do kit de treinamento VS2010RC. O aplicativo da web possui dois serviços: subitapplication.xamlx e educationscreening.xamlx. Não sei por que, mas os dois têm quatro pontos de extremidade. Se eu dar uma olhada no painel Appfabric no IIS MGMT Studio:
basicHttpBinding (Contract: *)
(Type: Application(Default))
netNamedPipeBinding (Contract: System.ServiceModel.Activities.IWorkflowInstanceManagement)
(Type: System (workflowControlEndpoint))
netNamedPipeBinding (Contract: *)
(Type: Application (Default))
serviceMetadataHttpGetBinding (Contract: serviceMetadataHttpGetContract)
(Type: System (serviceMetadataEndpoint))
Ao dar uma olhada no subitapplication.xamlx em um navegador, vejo o seguinte Stacktrace:
[InvalidOperationException: Two different contracts have the same ConfigurationName.]
System.ServiceModel.Activities.WorkflowServiceHost.CreateDescription(IDictionary`2& implementedContracts) +361
System.ServiceModel.ServiceHostBase.InitializeDescription(UriSchemeKeyedCollection baseAddresses) +174
System.ServiceModel.Activities.WorkflowServiceHost.InitializeDescription(WorkflowService serviceDefinition, UriSchemeKeyedCollection baseAddresses) +82
System.ServiceModel.Activities.WorkflowServiceHost.InitializeFromConstructor(WorkflowService serviceDefinition, Uri[] baseAddresses) +206
System.ServiceModel.Activities.Activation.WorkflowServiceHostFactory.CreateWorkflowServiceHost(WorkflowService service, Uri[] baseAddresses) +43
System.ServiceModel.Activities.Activation.WorkflowServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) +974
System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath) +1423
System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +50
System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +1132
[ServiceActivationException: The service '/HRApplicationServices/SubmitApplication.xamlx' cannot be activated due to an exception during compilation. The exception message is: Two different contracts have the same ConfigurationName..]
System.Runtime.AsyncResult.End(IAsyncResult result) +889824
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +179150
System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +107
Alguém pode me dizer o que estou fazendo de errado?
Eu não configurei nenhuma das ligações. O BasichttpBinding é o que você recebe por padrão no .NET 4 ao hospedar um serviço dentro de um aplicativo da Web. As outras ligações são configuradas pelo AppFabric. Não consigo encontrar a configuração deles em nenhum lugar.
Atualizar: Removido um dos Serviços Xamlx (EducationScreening.xamlx
). Sem efeito.
Atenciosamente,
Ronald Wildenberg
Solução
Fiz algumas pesquisas adicionais e encontrei o problema. Existem duas atividades de recebimento no fluxo de trabalho subitapplication.xamlx. Eles tinham dois serviceCotratName de serviço diferente:
{http://contoso.com/hr}IApplicationService
{http://contoso.com/hr/}IApplicationService
Ainda não entendo a mensagem. Qual é o nome da configuração de um serviço XAMLX? E por que é diferente quando eu altero o nome do serviceContractNe?