Подключение к развернутому WCF в IIS с помощью Silverlight - PullRequest
0 голосов
/ 01 августа 2011

Я развернул службу WCF в IIS 7. Просмотр службы из браузера показывает, что она работает нормально.При подключении к службе из приложения Silverlight возникает следующая ошибка:

HTML-документ не содержит информации об обнаружении веб-службы.Метаданные содержат ссылку, которая не может быть разрешена: 'http://localhost:81/SdkService.svc'. Тип содержимого application / soap + xml;charset = utf-8 не поддерживается службой http://localhost:81/SdkService.svc. Привязки клиента и службы могут не совпадать.Удаленный сервер возвратил ошибку: (415) Невозможно обработать сообщение, потому что тип содержимого 'application / soap + xml;charset = utf-8 'не был ожидаемым типом' text / xml;charset = utf-8 '.. Если служба определена в текущем решении, попробуйте создать решение и снова добавить ссылку на службу.

Проект службы соответствует .Net 4.0 и приложениюПул для этой службы также .Net 4.0

Клиент Silverlight также скомпилирован с .Net 4.0

Вот служба web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </assemblies>
    </compilation>
  </system.web>
  <system.serviceModel>
    <diagnostics>
      <messageLogging logMalformedMessages="true" logMessagesAtTransportLevel="true" />
    </diagnostics>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- 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="true" />
          <dataContractSerializer maxItemsInObjectGraph="6553600"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="false" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
  </system.webServer>

</configuration>
enter code here

1 Ответ

1 голос
/ 02 августа 2011

Silverlight поддерживает только basicHttpBinding. Я полагаю, что по умолчанию WCF имеет значение wsHttpBinding, поэтому вам может потребоваться изменить это, а затем обновить ссылку на службу.

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