1

我有一个 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) Internal Server Error."}

问题是,虽然响应是错误的,但该方法确实成功接收数据并将其传递到数据库中,所以问题似乎出在从 WCF 方法返回到客户端应用程序的响应中。有没有人遇到过这个?我知道共享主机的信任级别可能是罪魁祸首 - 但我尝试过的任何事情似乎都无法减轻我遇到的错误。

这是我在使用 WCF 服务的 Web 应用程序上的配置:

绑定:

<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"  />
4

0 回答 0