程序员说:"爱你不容易 WCF! " 持续遇到12个问题,杯巨
2011-08-27 03:11 通用C#系统架构 阅读(8502) 评论(22) 编辑 收藏 举报前几个月开始在项目里开始大量用WCF技术, 曾经用Remoting都很顺畅,这次改用上WCF后一连续遇到了N多问题才最终勉强成功了,当时我把遇到的每个问题都记录下来,虽然解决方法当时没仔细整理,但是把这些遇到的问题给准备使用WCF的朋友给个参考,熟练使用WCF没想像的那么简单.
由于需要 客户端与服务器端的通讯需要加密, 采用了 TSL/SSL 协议通讯,需要电子证书加密方式运行, 就遇到了如下这么多问题,有点惨啊.
01: “net.tcp://192.168.0.121:8888/DotNet.Service/LogOnService/”不支持正在使用的 .Net 组帧模式。有关详细信息,请参见服务器日志。
mscorlib
<binding name="netTcpBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" transferMode="Streamed" closeTimeout="00:00:05" openTimeout="00:00:02" receiveTimeout="10:10:10" sendTimeout="00:00:30">
</binding>
02:服务器已拒绝客户端凭据。
mscorlib
03:套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:00:29.9531999”。
mscorlib
04:“net.tcp://localhost:8888/DotNet.Service/ExceptionService/”处带有协定“"IExceptionService"”的 ChannelDispatcher 无法打开其IchannelListener。
05: 无法使用以下搜索标准找到 X.509 证书: StoreName“My”、StoreLocation“LocalMachine”、FindType“FindBySubjectName”、FindValue“jirisoft”。
06: 使用下列搜索标准找到多个 X.509 证书: StoreName“My”、StoreLocation“LocalMachine”、FindType“FindBySubjectName”、FindValue“jirisoft”。请提供更具体的查找值。
07: 无法连接到 net.tcp://192.168.0.121:8888/DotNet.Service/LogOnService/。连接尝试持续了 00:00:01.1076019 时间跨度。TCP 错误代码 10061: 由于目标计算机积极拒绝,无法连接。 192.168.0.121:8888。
mscorlib
08:可能证书“CN=jirigala-PC”没有能够进行密钥交换的私钥,或者进程可能没有访问私钥的权限。有关详细信息,请参见内部异常。
09:无法处理消息。这很可能是因为操作“http://tempuri.org/ILogOnService/UserLogOn”不正确,或因为消息包含无效或过期的安全上下文令牌,或因为绑定之间出现不匹配。如果由于未处于活动状态导致服务中止了该通道,则安全上下文令牌无效。若要防止服务永久中止闲置会话,请增加服务终结点绑定上的接收超时。
mscorlib
10:目标
“net.tcp://localhost:8888/DotNet.Service/LogOnService/”的“net.tcp://localhost:8888/DotNet.Service/LogOnService/”与 SOAP 的安全协商失败。有关详细信息,请参见内部异常。
mscorlib
11:传出消息标识检查失败。所预期的远程终结点的 DNS 标识为“localhost”,但是远程终结点提供的 DNS 请求为“jirigala-PC”。如果此远程终结点合法,您可以通过在创建通道代理时明确地将 DNS 标识“jirigala-PC”指定为 EndpointAddress 的“标识”属性来解决此问题。
mscorlib
12:发送到 net.tcp://192.168.0.21:8888/DotNet.Service/LogOnService/ 的请求操作在配置的超时(00:00:30)内未收到回复。
分配给此操作的时间可能已经是更长超时的一部分。这可能由于服务仍在处理操作或服务无法发送回复消息。
请考虑增加操作超时(将通道/代理转换为 IContextChannel 并设置 OperationTimeout 属性)并确保服务能够连接到客户端。
一个问题接着一个问题,整整折腾了2周才能搞定.