c# - 异常:从 RESTFUL 服务调用 Bing 翻译服务时找不到默认端点元素

标签 c# exception rest

我正在构建一个 RESTFUL 网络服务和一个 consoleHost 应用程序来托管该网络服务。 在 RESTFUL 网络服务中,我调用 BingTranslate 服务(链接引用:http://api.microsofttranslator.com/V2/Soap.svc) 我的服务主机成功,但是当我调用调用 BingTranslate 服务的函数时,抛出此异常: “在 ServiceModel 客户端配置部分找不到引用契约‘BingTranslator.LanguageService’的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此契约匹配的端点元素” (BingTranslator是RESTFUL项目中服务引用的名称)

RESTFUL项目的app.config是:

<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>

ConsoleHost 的 app.config 文件是这样的:

<?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>

“如果您在类库中调用服务并从另一个项目调用类库,则会出现此错误。” -> 也许这就是我的情况。但我不知道如何解决它。

我该怎么办? 请帮我。非常感谢。 最好的问候

最佳答案

如果您在单独的类库项目中有服务客户端,则引用项目不会继承 wcf 客户端配置(即 app.config 中的 system.servicemodel 部分)。您需要将类库项目中 app.config 的 System.ServiceModel 部分复制到 exe 项目中的 app.config。

关于c# - 异常:从 RESTFUL 服务调用 Bing 翻译服务时找不到默认端点元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8787803/

相关文章:

java - Spring Boot 休息 NioSocketWrapper.getSslSupport NullPointerException

c++ - 为什么我的签名与亚马逊的示例不同? (C++/REST/授权签名版本 4)

c# - 需要将oracle函数转换成c#代码

c# - 南希 (C#) : How do I get my post data?

java - java 新手 - 线程 “main” java.util.NoSuchElementException 中出现异常

java - 在抛出之前更改异常原因消息?

c# - 将 View 呈现为字符串 : ArgumentOutOfRangeException

c# - '查询结果不能多​​次列举'

java - 异常不起作用(不显示 JOptionPane 消息)

java - 由于未知原因,Maven Webservices 项目需要很长时间才能构建