У меня есть два проекта в одном решении. Один проект, назовем его MainProject, становится исполняемым. Другой проект, назовем его ControlsProject, содержит UserControl
и ссылается (и используется) в MainProject. ControlsProject также имеет ссылку на сервис WCF.
У меня есть два вопроса относительно этой конфигурации:
- Могу ли я просто скопировать конфигурацию WCF из ControlsProject в MainProject (что, как я полагаю, не могу, в соответствии с " Как включить конфигурацию конечной точки веб-ссылки в другой проект ")
- В конфигурации ControlsProject контракт не имеет полностью определенного пространства имен, а скорее такого имени, как '
ServiceName.IServiceInterfaceName
'. Каким должно быть имя контракта, поскольку выводом ControlsProject будет файл, расположенный в папке bin в MainProject?
Я попытался просто скопировать конфигурацию, но получил исключение: "Could not find default endpoint element that references contract 'MyService.IMyService' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.
" Когда я скопировал конфигурацию, я полностью определил имя интерфейса как ControlsProject.MyService.IMyService
.
Любая помощь, которую вы можете оказать, приветствуется!
ОБНОВЛЕНИЕ (14.07.2011 17:28 EST)
Вот фрагмент из моего клиента app.config:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IStatService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://intranet/StatService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IStatService"
contract="StatService.IStatService" name="BasicHttpBinding_IStatService" />
</client>
</system.serviceModel>
Вот фрагмент из моего веб-сервиса web.config:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>