C# 使用WCF客户端库从Asp.net core使用WCF服务(nettcp)

C# 使用WCF客户端库从Asp.net core使用WCF服务(nettcp),c#,.net,asp.net-core,wcf-client,C#,.net,Asp.net Core,Wcf Client,我们有一个以nettcp模式托管的WCF服务和WCF客户端库,服务和客户端都是使用.net framework创建的 现在我们正在使用Asp.net core 2.1创建新的应用程序,仍然需要使用相同的旧WCF客户端库使用上面创建的WCF服务 将此WCFClient库引用(.net framework)添加到我们的Asp.net核心应用程序中。这里我使用下面的代理构造函数来传递我的端点详细信息 public LoggingServiceProxy(Binding binding, Endpoin

我们有一个以nettcp模式托管的WCF服务和WCF客户端库,服务和客户端都是使用.net framework创建的

现在我们正在使用Asp.net core 2.1创建新的应用程序,仍然需要使用相同的旧WCF客户端库使用上面创建的WCF服务

将此WCFClient库引用(.net framework)添加到我们的Asp.net核心应用程序中。这里我使用下面的代理构造函数来传递我的端点详细信息

public LoggingServiceProxy(Binding binding, EndpointAddress remoteAddress)
            : base(binding, remoteAddress)

new LoggingServiceProxy(new EndpointAddress("net.tcp://localhost:9100/LoggingService/Tcp"), new NetTcpBinding(SecurityMode.None));
添加System.ServiceModel.NetTcp和System.ServiceModel.Primitives NUGET引用后,解决了所有其他错误。但代码线程在执行代理代码时突然中止

((ICommunicationObject)this.channel).Open();
没有更多信息,调试消息在此点之后可用。没有例外,所以我们不知道是什么

注意:当我停止我的服务进行测试时,我明显得到异常“EndPointNotFound”

预期的行为是能够使用Asp.net核心应用程序->WCF客户端库(.net framework)->WCF服务nettcp(.net framework)中的服务

在深入研究自动生成的代理代码之后,发现这个问题发生在InnerChannel_Opened()和InnerChannel_Closed()事件中 上面的事件得到了导致问题的代码“lock(this.channelLock)”行。没有提出例外。只是线程中止/退出。当注释掉这些事件时,它可以正常工作,但我不太确定是否可以注释这些自动生成的代码

               lock (this.channelLock)
                {
                    if (this.IsDisposed)
                    {
                        throw new InvalidOperationException("Cannot use disposed object.");
                    }

                    if (this.Opened != null)
                    {
                        this.Opened(sender, e);
                    }
                }