我有一个名为管道绑定的WCF,它可以在99%的时间内工作。我在发送大邮件时遇到了麻烦。特别是,长度大于65535的字符串。
实际的异常消息是:
服务器未提供有意义的回复;这可能是由 合同不匹配,过早的会话关闭或内部 服务器错误。
通常情况下,我会期待一条关于MaxMessageLength或类似内容的异常消息。
下面,这是我用来打开我的烟斗的功能。如您所见,我相信我正确设置了最大邮件大小。
private void OpenPipe()
{
try
{
var pipeBinding = new NetNamedPipeBinding();
pipeBinding.MaxReceivedMessageSize = int.MaxValue;
pipeBinding.MaxBufferSize = int.MaxValue;
pipeBinding.MaxBufferPoolSize = int.MaxValue;
pipeBinding.OpenTimeout = new TimeSpan(0, 10, 0);
pipeBinding.ReceiveTimeout = new TimeSpan(0, 10, 0);
pipeBinding.SendTimeout = new TimeSpan(0, 10, 0);
pipeBinding.CloseTimeout = new TimeSpan(0, 10, 0);
pipeFactory =
new DuplexChannelFactory<ITsmNPContracts>(this, pipeBinding, new EndpointAddress("net.pipe://localhost/TsmPipe"));
pipeFactory.Closed += pipeFactory_Closed;
serviceClient = pipeFactory.CreateChannel();
isChannelOpen = true;
}
catch (Exception e)
{
//channel not open
lastError = e;
}
}
这似乎是一个非常差的异常消息,并没有给我任何关于问题的提示。有任何想法吗?感谢
-EDIT 我呼叫的特定功能也会立即失败。所以我不相信我会发送/接收超时。