草庐IT

c# - WCF net tcp 端口共享

我有2个WCF服务,每个服务都托管在自己的控制台应用程序中。它们位于:net.tcp://computername:7777/Service1net.tcp://computername:7777/Service2每个人都有自己的契约(Contract)。我希望他们使用相同的端口,所以我阅读了很多有关该主题的内容,并执行了以下操作:启用网络tcp端口共享服务。使用以下命令注册了url:netshhttpaddurlacluser=domain\usernameurl=net.tcp://+:7777/Service1netshhttpaddurlacluser=domain\usern

c# - WCF 的 ClientBase<TChannel> 在 Disposed 时如何处理 TCP 连接?

前一段时间我看到一篇有趣的文章,解释了将HttpClient在usingblock中将在代码执行但不关闭TCP套接字时处理该对象,并且TCP状态最终将进入TIME_WAIT并在该状态列表中停留4分钟以进行进一步的事件(默认).所以基本上多次使用它:using(varclient=newHttpClient()){//dosomethingwithhttpclient}导致许多打开的TCP连接处于TIME_WAIT。你可以在这里阅读整篇文章:You'reusingHttpClientwronganditisdestabilizingyoursoftware所以我想知道如果我对Client

wcf - netstat 说 443 已打开,但我无法使用 telnet 连接到它。为什么?

我使用wsHttpBinding构建了一个自托管的wcf服务器。我正在运行Win2003服务器R2SP2。如果我将其配置为监听http://localhost:443/MyService,一切正常。我可以使用InternetExplorer连接到http://localhost:443/MyService,并收到标准的“错误请求”消息现在,如果我尝试切换到HTTPS,我会看到一个奇怪的现象。这是我所做的:我已将我的wcf配置文件从http://localhost更改为https://localhost并将Security=None更改为Security=Transport(如许多wcf

c# - 如何在同一套接字上托管 WCF 服务和 TCP 服务器?

现在我使用ServiceHost来自托管WCF服务。我想在我的WCF服务附近托管我自己的TCP程序以进行直接套接字操作(比如对某种广播TCP流的留置权)我需要控制URL命名空间(这样我就可以让我的客户使用一些不错的URL将TCP流直接发送到我的服务中,例如example.com:port/myserver/stream?id=1或example.com:port/myserver/stream?id=anything这样我就不会在某一时刻被1个客户端用于1个套接字的想法所困扰,我真的想让我的WCF服务与我自己的服务器在同一个端口上或者它是什么所以能够调用www.example.com:

c# - 进程终止时 WCF tcp 连接保持打开状态

我在这里看到过类似的问题,但找不到答案。我有一个使用WCF打开到远程地址的连接的应用程序,有时当我从任务管理器中终止该应用程序或该应用程序不正常地关闭时,连接保持打开状态,然后当我重新启动我的应用程序时,我得到一个异常告诉我已经此端口上的监听器。几个问题:为什么在我终止进程后此类连接仍保持打开状态?当进程异常关闭时,如何关闭此连接?如何在尝试创建新连接之前关闭连接?服务端:varurl=Config.GetRemoteServerUrl();varbinding=newNetTcpBinding();binding.Security.Mode=SecurityMode.None;bin

tcp - 如何通过 TCP 端口托管 WCF?

如何通过TCP端口托管WCF服务,以及如何通过这些TCP端口监听和使用服务?也就是说,除了net.tcp绑定(bind)之外,是否有一些方法可以使用TCP端口来托管和使用? 最佳答案 在WCF中,您可以通过创建ServiceHost类的实例自行托管任何服务,使用正确的端点和您希望公开的服务实现对其进行配置,然后对其调用Open。这称为自托管,因为您从自己的应用程序中托管服务(及其端口监听器)。或者,您可以在IIS中托管您的服务,但您应该知道,虽然您可以在IIS6中托管WCF,但它只允许您托管HTTP和HTTPS端点。如果您想在IIS

.net - WCF netTCPBinding - 传输加密是否足够?

我有一个处理一些敏感数据的WCF服务。我想确保我不让这些数据暴露,所以我正在查看netTCPBinding...主要是因为我可以控制它运行的网络并且性能是重中之重。我知道有两个区域可以加密:传输级别和消息级别。我打算使用证书在传输级别进行加密,据我所知,它使用基于TCP的TLS。调用客户端也是我的,所以我控制传输级别。由于我预计传输层不会发生变化,我是否需要为消息级加密而烦恼?除非我想要更改传输的灵active,否则这似乎是不必要的。 最佳答案 当您不控制中介时,需要消息级加密。中介服务需要能够修改soapheader,并且可以出于

wcf - 在其所属进程退出后,如何释放 "daemon"TCP 端口监听器?

背景我有一个在net.tcp端口667上监听的.net4.0WCF应用程序。(Windows7机器)在某些时候,应用程序会异常退出(例如,用户终止进程)。现在发生了一件奇怪的事情:端口保持打开状态。当用户重新启动应用程序时,它无法监听该端口,因为它已被使用。奇怪的是,即使拥有的进程被杀死,操作系统也没有关闭端口,甚至在几个小时后也没有。以下是一些观察结果:在TcpView上,进程是,PID属于旧的(被杀死的)进程,状态为LISTENING.本地地址是我的机器,同时有IPV4和IPV6该端口上的听众。TcpView上的“关闭连接”和“结束进程”操作对该端口没有影响。ProcessExpl

c# - WCF 在没有 IIS 的情况下与多个客户端通信

我们正在开发一种点对点通信软件,可以让许多杂货店将他们的库存与我们所说的“总部”同步。为此,我们正在考虑WCF+WPF,并且没有IIS和Web服务。我对WCF的经验基本上为零,所以我的问题是使用WCF的TCP通信解决方案是否可行。传输的数据非常有限,一个压缩的纯文本文件大约2MB(所以我们发送二进制数据!),而且每天只传输一次。所以带宽/负载在这里不应该成为问题。此时的想法是在总部运行一个WCF“服务器”。商店让该服务器知道自己,然后来回发送文件(类似于聊天应用程序)。我不确定的是:每个商店都需要有一个WCF“服务器”(或端点)吗?服务器(=HQ)如何将文件发送到其中一个客户端(=商店

wcf - 奇怪的 WCF net.tcp 异常

我有一个带有net.tcp传输的WCF客户端/服务。当我在客户端打开WCF跟踪时,我在跟踪中看到以下错误(请参阅服务跟踪查看器的屏幕截图)。奇怪的是WCF正在处理和恢复这个错误,而我的客户端没有收到任何异常并且它继续工作。此异常会频繁、随机地发生,但不会在每次Web方法调用时发生。客户端(windowsXP)身份验证是windows,服务由SPN标识,服务在NLB(windowsserver2003)后面的windows服务上自托管。任何人都可以向我解释这里发生了什么。来自跟踪xml的异常堆栈跟踪是:System.ServiceModel.Security.MessageSecurit