Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт - PullRequest
0 голосов
/ 28 января 2011

Я самостоятельно разместил службу WCF из консольного приложения (HOST).Я звоню HOST из другого консольного приложения (PARENT).Когда я запускаю PARENT, все работает нормально, как WCF, размещенный успешно, и создается экземпляр ссылки на службу.Приложение PARENT на самом деле является плагином для другого большого неуправляемого приложения (BIG A).Когда я запускаю приложение PARENT из BIG A, консольное приложение самостоятельно размещает службу успешно.Однако я получаю следующую ошибку при создании экземпляра службы.

Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт 'CalculatorServiceReference.ICalculatorService' в разделе конфигурации клиента ServiceModel.Это может быть связано с тем, что для вашего приложения не найден файл конфигурации или в элементе клиента не найден элемент конечной точки, соответствующий этому контракту.

Файлы конфигурации имеют следующий вид.

• Конфигурацияфайл HOST

<?xml version="1.0" encoding="utf-8" ?>    
<configuration>    
 <system.serviceModel>    
 <behaviors>    
 <serviceBehaviors>    
 <behavior name="NewBehavior">    
 <serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />    
 </behavior>    
 </serviceBehaviors>    
 </behaviors>    
 <services>    
 <service behaviorConfiguration="NewBehavior" name="HybridCalcService.CalculatorService">    
 <clear />    
 <endpoint address="mex" binding="mexHttpBinding" name="Mex" contract="IMetadataExchange" 
 listenUriMode="Explicit">    
 </endpoint>    
 <endpoint address="net.tcp://localhost:8523/CalcService" binding="netTcpBinding"    
 name="Tcp" contract="HybridCalcService.ICalculatorService" listenUriMode="Explicit">

 </endpoint>

 <endpoint address="HTTP" binding="basicHttpBinding" bindingConfiguration=""    
 name="HTTP" contract="HybridCalcService.ICalculatorService" />    
 <host>

 <baseAddresses>    
 <add baseAddress="http://localhost:8080/Hybridservice" />    
 </baseAddresses>    
 </host>    
 </service>    
 </services>       
 </system.serviceModel>    
</configuration>

• А конфиг PARENT -

<?xml version="1.0" encoding="utf-8" ?>    
<configuration>    
 <system.serviceModel>    
 <behaviors>    
 <serviceBehaviors>    
 <behavior name="NewBehavior">    
 <serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />    
 </behavior>    
 </serviceBehaviors>    
 </behaviors>    
 <services>

 <service behaviorConfiguration="NewBehavior" name="HybridCalcService.CalculatorService">    
 <clear />    
 <endpoint address="mex" binding="mexHttpBinding" name="Mex" contract="IMetadataExchange"   
 listenUriMode="Explicit">    
 </endpoint>    
 <endpoint address="net.tcp://localhost:8523/CalcService" binding="netTcpBinding"    
 name="Tcp" contract="HybridCalcService.ICalculatorService" listenUriMode="Explicit">    
 </endpoint>    
 <endpoint address="HTTP" binding="basicHttpBinding" bindingConfiguration=""    
 name="HTTP" contract="HybridCalcService.ICalculatorService" />    
 <host>    
 <baseAddresses>    
 <add baseAddress="http://localhost:8080/Hybridservice" />
 </baseAddresses>    
 </host>    
 </service>    
 </services>    
 </system.serviceModel>    
</configuration>

Может кто-нибудь помочь мне в этом вопросе?

1 Ответ

0 голосов
/ 28 января 2011

Я считаю, что информация о конфигурации должна быть в файле конфигурации основного приложения. Добавление этой информации в конфигурацию BigA должно решить проблему.

Этот выглядит очень похоже на то, что я сделал для пользовательского канала если я правильно помню, это войдет в HOST, и вам ничего не понадобится в других конфигах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...