Messaggio di errore: “due contratti diversi hanno lo stesso ConfigurationName” durante il download WSDL da xamlx in AppFabric Beta 2
-
25-09-2019 - |
Domanda
ottengo il seguente messaggio di errore quando si tenta di utilizzare svcutil
per generare un proxy client per un file xamlx
che è ospitato da AppFabric Beta 2:
due contratti diversi hanno lo stesso ConfigurationName
ho capito il messaggio, però, non riesco a trovare la sua causa o come risolvere il problema. Sto seguendo il 'Introduzione al flusso di lavoro Servizi' laboratorio dal kit di formazione VS2010RC. L'applicazione web ha due servizi: SubmitApplication.xamlx e EducationScreening.xamlx. Non so perché, ma entrambi hanno quattro punti finali. Se prendo uno sguardo attraverso l'AppFabric Dashboard in 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))
Quando si riprendono uno sguardo al SubmitApplication.xamlx in un browser, vedo il seguente 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
Qualcuno può dirmi che cosa sto facendo male?
Non ho configurato nessuno dei binding me stesso. Il BasicHttpBinding è ciò che si ottiene per impostazione predefinita in .NET 4 quando l'hosting di un servizio all'interno di un'applicazione web. Gli altri attacchi sono configurati per AppFabric. Non riesco a trovare da nessuna parte la loro configurazione.
Aggiorna : una Rimosso dei servizi xamlx (EducationScreening.xamlx
). Nessun effetto.
Cordiali saluti,
Ronald Wildenberg
Soluzione
Ho fatto qualche ulteriore ricerca e ho trovato il problema. Ci sono due attività ReceiveRequest all'interno del flusso di lavoro SubmitApplication.xamlx. Avevano due diversi ServiceContractName di:
{http://contoso.com/hr}IApplicationService
{http://contoso.com/hr/}IApplicationService
I ancora non capisco il messaggio però. Qual è il ConfigurationName di un servizio xamlx? E perché è diverso quando cambio la ServiceContractName?