2010-03-06 8 views
1

Я получаю следующее сообщение об ошибке при попытке использовать svcutil для создания прокси-сервера клиента для файла xamlx, который размещен AppFabric бета-2:Сообщение об ошибке: «Два разных контракта имеют одинаковое имя конфигурации» при загрузке wsdl из xamlx в AppFabric beta 2

Два разных контракты имеют один и тот же ConfigurationName

Я понимаю, сообщение, однако, я не могу найти его причину и как это исправить. Я слежу за лабораторией «Введение в Workflow Services» из учебного набора VS2010RC. Веб-приложение имеет две службы: SubmitApplication.xamlx и EducationScreening.xamlx. Я не уверен, почему, но у обоих из них есть четыре конечных точки. Если я взгляну через AppFabric Dashboard в IIS Mgmt Студия:

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). Нет эффекта.

С наилучшими пожеланиями,
Ronald Wildenberg

ответ

3

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

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

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