Исключение: не удалось найти элемент конечной точки по умолчанию при вызове службы Bing translate из службы RESTFUL - PullRequest
5 голосов
/ 09 января 2012

Я создаю веб-сервис RESTFUL и приложение consoleHost для размещения этого веб-сервиса. В веб-сервисе RESTFUL я вызываю сервис BingTranslate (ссылка на: http://api.microsofttranslator.com/V2/Soap.svc) Мой сервисный хост успешно, но когда я вызываю функцию, которая вызывает сервис BingTranslate, выдается следующее исключение: «Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт« BingTranslator.LanguageService »в разделе конфигурации клиента ServiceModel. Это может быть связано с тем, что для вашего приложения не найден файл конфигурации, или в элементе клиента не найден элемент конечной точки, соответствующий этому контракту. «. (BingTranslator - это название сервисной ссылки в проекте RESTFUL)

app.config проекта RESTFUL:

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_LanguageService" 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>

      <webHttpBinding>
        <binding transferMode="Streamed" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" openTimeout="00:25:00"
                 closeTimeout="00:25:00" sendTimeout="00:25:00" receiveTimeout="00:25:00" name="webBinding">
        </binding>
      </webHttpBinding>

    </bindings>
    <client>
      <endpoint address="http://api.microsofttranslator.com/V2/soap.svc"
        binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_LanguageService"
        contract="BingTranslator.LanguageService" name="BasicHttpBinding_LanguageService" />
    </client>
    <services>
      <service name="SearchService.Service1" behaviorConfiguration="SearchService.Service1Behavior">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8732/Design_Time_Addresses/SearchService/Service1/"   />
          </baseAddresses>
        </host>

        <endpoint address=""  binding="webHttpBinding" contract="SearchService.IService1"
                     behaviorConfiguration="Web" bindingConfiguration="webBinding">

          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SearchService.Service1Behavior">
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="Web">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
  </system.serviceModel>

и файл app.config ConsoleHost, например:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="NewBehavior">
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="Web">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="NewBehavior" name="SearchService.Service1">
        <clear />
        <endpoint address="" binding="webHttpBinding" contract="SearchService.IService1"
            behaviorConfiguration ="Web" />
        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
            contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8787/searchservice" />
          </baseAddresses>
        </host>
      </service>
    </services>
  </system.serviceModel>
</configuration>

"Эта ошибка может возникнуть, если вы вызываете службу в библиотеке классов и вызываете библиотеку классов из другого проекта." -> Возможно, это моя ситуация. Но я не знаю, как это исправить.

Что мне делать? Пожалуйста, помогите мне. Большое спасибо. С наилучшими пожеланиями

1 Ответ

2 голосов
/ 09 января 2012

Если у вас есть клиент службы в отдельном проекте библиотеки классов, конфигурация клиента wcf (т. Е. Раздел system.servicemodel в app.config) не наследуется ссылочным проектом.Вам необходимо скопировать раздел System.ServiceModel app.config в проекте библиотеки классов в файл app.config в проекте exe.

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