我有一个在本地,服务器和Azure上运行良好的WCF服务。但是,我正在尝试将相同的代码部署到RackSpace站点(共享主机环境正在运行.NET 4.0。IIS7和Windows Server 2008),并且在服务返回响应时运行以下错误:
消息:[System.ServiceModel.ProtocolException] = {“响应消息的内容类型text / html与 绑定的内容类型(text / xml; 字符集= UTF-8)。如果使用自定义 编码器,请确保 IsContentTypeSupported方法是 实施得当。第一个1024 res的字节...
InnerException:_innerException = {“The 远程服务器返回错误:(500) 内部服务器错误。“}
问题是,虽然响应是错误的,但该方法确实成功接收数据并将其传递到数据库中,因此问题似乎在从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" />