Сообщение об ошибке: "Два разных контракта имеют одно и то же имя конфигурации" при загрузке wsdl из xamlx в бета-версии AppFabric 2

При попытке использовать следующее сообщение об ошибке svcutil создать клиентский прокси для xamlx файл, размещенный в бета-версии AppFabric 2:

Два разных контракта имеют одинаковое имя_конфигурации

Я понимаю сообщение, однако я не могу найти его причину или как ее исправить. Я слежу за лабораторией "Введение в Workflow Services" из учебного комплекта VS2010RC. Веб-приложение имеет две службы: SubmitApplication.xamlx и EducationScreening.xamlx. Я не уверен, почему, но у них обоих есть четыре конечных точки. Если я посмотрю через панель управления AppFabric в 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))

Когда я смотрю на SubmitApplication.xamlx в браузере, я вижу следующую трассировку стека:

[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

Может кто-нибудь сказать мне, что я делаю не так?

Я не настроил ни одну из привязок сам. BasicHttpBinding - это то, что вы получаете по умолчанию в.NET 4 при размещении службы внутри веб-приложения. Другие привязки настраиваются AppFabric. Я не могу найти их конфигурацию нигде.

Обновление: удален один из сервисов xamlx (EducationScreening.xamlx). Нет эффекта.

С уважением,
Рональд Вильденберг

1 ответ

Решение

Я провел дальнейшие исследования и обнаружил проблему. Внутри рабочего процесса SubmitApplication.xamlx есть два действия ReceiveRequest. У них было два разных ServiceContractName's:

{http://contoso.com/hr}IApplicationService
{http://contoso.com/hr/}IApplicationService

Я все еще не понимаю сообщение однако. Что такое имя_конфигурации службы xamlx? И почему это отличается, когда я изменяю ServiceContractName?

Другие вопросы по тегам