Проблемы с конфигурацией WCF на общем хостинге

У меня есть служба WCF, которая отлично работает локально, на сервере и в Azure. Однако я пытаюсь развернуть тот же код на сайтах RackSpace (среда общего хостинга работает под управлением .NET 4.0. IIS7 и Windows Server 2008) и работаю со следующей ошибкой, когда служба возвращает ответ:

Message:[System.ServiceModel.ProtocolException] = {"Тип содержимого text/html ответного сообщения не соответствует типу содержимого привязки (text/xml; charset=utf-8). При использовании пользовательского кодировщика Убедитесь, что метод IsContentTypeSupported реализован правильно.Первые 1024 байта рез...

InnerException:_innerException = {"Удаленный сервер вернул ошибку: (500) Внутренняя ошибка сервера."}

Дело в том, что хотя ответ является ошибкой, метод успешно получает данные и передает их в базу данных. Таким образом, проблема, похоже, заключается в ответе метода WCF клиентскому приложению. Кто-нибудь сталкивался с этим раньше? Я знаю, что могут быть виноваты уровни доверия на виртуальном хостинге, но ничто из того, что я пробовал, не помогло устранить ошибки, которые я получаю.

Вот моя конфигурация веб-приложения, использующего службу WCF:

Привязка:

<binding name="BasicHttpBinding_IAccountService" closeTimeout="00:10:00"
      openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
      allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
      maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
      messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
      useDefaultWebProxy="true">
      <readerQuotas maxDepth="64" maxStringContentLength="2147483647" maxArrayLength="2147483647"
        maxBytesPerRead="4096" maxNameTableCharCount="16384" />

      <security mode="None">
        <transport clientCredentialType="None" proxyCredentialType="None"
          realm="" />
        <message clientCredentialType="UserName" algorithmSuite="Default" />
      </security>

    </binding>

И конечная точка:

<client>
  <endpoint address="http://sitename.com/Services/AccountService.svc"
    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IAccountService"
    contract="AccountService.IAccountService" name="BasicHttpBinding_IAccountService" /></client>

Это привязка/конечная точка по умолчанию, созданная при использовании «Добавить ссылку на службу».

Приложение, в котором размещена служба WCF, не использует никаких пользовательских конфигураций, но вот часть поведения его Web.Config:

<behaviors>
  <serviceBehaviors>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"  />

person INNVTV    schedule 03.03.2011    source источник
comment
Включение трассировки WCF или просмотр журнала событий Windows должно дать вам больше информации (или трассировку стека). Включите трассировку WCF: msdn.microsoft.com/en-us/library/ms733025. aspx   -  person Ramiro Berrelleza    schedule 08.03.2011