Ошибка синтаксического анализатора службы WCF, невозможно импортировать привязку 'xxx' из пространства имен 'http://tempuri.org/' - PullRequest
0 голосов
/ 11 января 2012

У меня есть служба WCF, которую я пытаюсь запустить в IIS на моем сервере. Тем не менее, я понятия не имею, что делать с этой ошибкой, каждое исправление, найденное мной при поиске в Google, не работает. Что мне здесь не хватает?

Сообщение об ошибке: невозможно импортировать привязку '...' из пространства имен 'http://tempuri.org/'.

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
      <section name="MyService.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <system.web>
    <customErrors mode="Off"/>
    <compilation debug="true">
      <assemblies>
        <add assembly="Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
      </assemblies>
    </compilation>
  </system.web>
  <system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="MyServiceBinding">
          <security mode="Message">
            <message clientCredentialType="Windows"/>
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    <services>
      <service name="MyService">
        <endpoint binding="wsHttpBinding" behaviorConfiguration="webHttp" contract="MyService">
          <identity>
            <dns value="https://IPADDRESS:443"/>
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="webHttp">
          <webHttp defaultOutgoingResponseFormat="Json" />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="WCFWsHttpBindingHttps.MyServiceBehavior">
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
 <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

 <applicationSettings>
  <MyService.Properties.Settings>
   <setting name="MyService_MyOtherService_MyOtherService" serializeAs="String">
    <value>http://path-to-service/MyOtherService.svc</value>
   </setting>
  </MyService.Properties.Settings>
 </applicationSettings>
</configuration>

[править] Следует отметить, что я получаю сообщение об ошибке при размещении службы из IIS в другой службе, на которую я ссылался. Он попадает в строку 1 WSDL и выдает ошибку разбора.

1 Ответ

1 голос
/ 11 января 2012

Просто глядя на ваш web.config

  • Имя и контракт службы совпадают, что, хотя и возможно, не является наилучшей практикой
  • Имя службы должно быть полностью квалифицированным (пространства имен включены)
  • На определенное поведение службы не ссылается ваш элемент службы (следует добавить behaviorConfiguration="WCFWsHttpBindingHttps.MyServiceBehavior")
  • Вам следует установить serviceDebug includeExceptionDetailInFaults="true", чтобы вы могли получать правильные сообщения об ошибкахвернулся.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...