.net WCF:手动配置绑定和终结点会导致SerciveChannel出现故障状态

.net WCF:手动配置绑定和终结点会导致SerciveChannel出现故障状态,.net,wcf,configuration,wcf-binding,wcf-client,.net,Wcf,Configuration,Wcf Binding,Wcf Client,我已经创建了一个用于经典asp应用程序的ComVisible程序集。程序集应充当wcf客户端,并使用命名管道连接到同一台计算机上的wcf服务主机(在windows服务内)。wcf服务主机可以与其他客户端一起正常工作,因此问题一定在该程序集中 为了让事情顺利进行,我向ComVisible程序集和代理类添加了一个服务引用,并为我生成了相应的app.config设置。到目前为止一切正常,除了在asp代码中使用我的程序集执行CreateObject时无法识别应用程序配置 我尝试硬编码(仅用于测试)绑定和

我已经创建了一个用于经典asp应用程序的ComVisible程序集。程序集应充当wcf客户端,并使用命名管道连接到同一台计算机上的wcf服务主机(在windows服务内)。wcf服务主机可以与其他客户端一起正常工作,因此问题一定在该程序集中

为了让事情顺利进行,我向ComVisible程序集和代理类添加了一个服务引用,并为我生成了相应的app.config设置。到目前为止一切正常,除了在asp代码中使用我的程序集执行CreateObject时无法识别应用程序配置

我尝试硬编码(仅用于测试)绑定和端点,并使用以下代码将它们传递给ClientBase派生代理的构造函数:

private NetNamedPipeBinding clientBinding = null;
private EndpointAddress clientAddress = null;

clientBinding = new NetNamedPipeBinding();
clientBinding.OpenTimeout = new TimeSpan(0, 1, 0);
clientBinding.CloseTimeout = new TimeSpan(0, 0, 10);
clientBinding.ReceiveTimeout = new TimeSpan(0, 2, 0);
clientBinding.SendTimeout = new TimeSpan(0, 1, 0);
clientBinding.TransactionFlow = false;
clientBinding.TransferMode = TransferMode.Buffered;
clientBinding.TransactionProtocol = TransactionProtocol.OleTransactions;
clientBinding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
clientBinding.MaxBufferPoolSize = 524288;
clientBinding.MaxBufferSize = 65536;
clientBinding.MaxConnections = 10;
clientBinding.MaxReceivedMessageSize = 65536;

clientAddress = new EndpointAddress("net.pipe://MyService/");

MyServiceClient client = new MyServiceClient(clientBinding, clientAddress);

client.Open();
// do something with the client
client.Close();
但这会导致以下错误:

通信对象System.ServiceModel.Channels.ServiceChannel无法用于通信,因为它处于故障状态

环境是.Net Framework 3.5/C#。我错过了什么

编辑: 我只是想,当使用basicHttpBinding时,一切都按预期进行。因此,问题只能出现在NetNamedPipeBinding中


有人吗?

此客户端与您的服务在同一台机器上吗

netNamedPipeBinding
仅在同一台机器上工作。如果需要从一台机器转到另一台机器,请使用
netTcpBinding


否则,您的代码对我来说似乎很好-没有明显、明显的遗漏或错误。

此客户端与您的服务在同一台机器上吗

netNamedPipeBinding
仅在同一台机器上工作。如果需要从一台机器转到另一台机器,请使用
netTcpBinding


否则,我觉得您的代码很好-没有明显的遗漏或错误。

是的,正如我在文章中提到的,wcf主机正在同一台机器上运行。是的,正如我在文章中提到的,wcf主机正在同一台机器上运行。错误在哪里抛出?当您调用Open()时?或者当您在绑定上设置属性时?在哪里抛出错误?当您调用Open()时?或者当您在绑定上设置属性时?