1

我从 VS10 中创建了一个 Web 服务引用——从一个 ASP.NET 网站和一个 WCF 4.0 自定义服务端点。当一切都在我的沙箱中运行/部署时,它工作正常,但是当我部署到单独的服务器时,我收到以下错误。

System.ServiceModel.CommunicationException:接收时发生错误

对http://mywcfservices.com:888/SvcLibrary.MyService.svc的HTTP 响应 。

这可能是由于服务端点绑定未使用 HTTP 协议。

这也可能是由于服务器中止了 HTTP 请求上下文

(可能是由于服务关闭)。

这是VS10 在 ASP.NET 客户端网站中生成的web.config 部分。我还注意到它会生成 wsHttpBinding 绑定而不是 HttpBasicBinding 是我的问题吗?这不是 HTTPS 部署。

  <system.serviceModel>

<bindings>

<wsHttpBinding>

<binding name="WSHttpBinding_IXRMService" closeTimeout="00:01:00"

openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"

bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"

maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text"

textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">

<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"

maxBytesPerRead="4096" maxNameTableCharCount="16384" />

<reliableSession ordered="true" inactivityTimeout="00:10:00"

enabled="false" />

<security mode="Message">

<transport clientCredentialType="Windows" proxyCredentialType="None"

realm="" />

<message clientCredentialType="Windows" negotiateServiceCredential="true"

algorithmSuite="Default" />

</security>

</binding>

</wsHttpBinding>

</bindings>

<client>

<endpoint address="http://mywcfservices.com:888/SvcLibrary.MyService.svc"

binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IXRMService"

contract="XRMService.IXRMService" name="WSHttpBinding_IXRMService">

<identity>

<dns value="localhost" />

</identity>

</endpoint>

</client>

</system.serviceModel>
4

1 回答 1

0

wsHttpBindings 不一定只是用于跨 Web 服务调用执行 HTTPS,因为 basicHttp 也可以这样做,而是 ide 默认为这个,因为 wsHttp 将比 basicHttp 更高级的选项,因为它实现了 WS-* 规范(尤其是围绕寻址、消息级安全等)。

你可以发送你的服务器端/服务端配置 xml 吗?这将是配置 WCF 本身的配置部分(<service> 标记内的内容)。这将有助于了解 IIS 不喜欢您的服务调用的原因。

于 2012-10-08T20:26:57.043 回答