问题标签 [net.tcp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3711 浏览

wcf - WCF Net.TCP 服务抛出模糊错误

我正在尝试为现有 WCF 服务启用额外的 net.tcp 端点(使用用户名身份验证)。该服务托管在 IIS7 中。

对服务执行客户端会返回套接字连接已中止的错误。启用对服务的跟踪会显示引发以下异常:

System.ArgumentOutOfRangeException
此参数的值必须为正。
参数名称:maxAccepts
实际值为 0。

我很困惑,因为尽我所能告诉配置应该禁用端口共享(见下文),但它仍然通过端口共享代码调用(再次,据我所知)。无论如何,我找不到任何方法来指定这个 maxAccepts 值;谷歌对此一无所知,并且 maxPendingAccepts 值似乎没有这样做。如何解决错误?

服务的配置文件包含 net.tcp 端点的以下内容:

完整的异常堆栈跟踪是:

编辑:我已经安装了非 HTTP WCF 激活组件,运行 ServiceModelReg.exe,将 net.tcp 和 net.pipe 添加到 IIS 管理器中启用的协议列表等。没有乐趣。

我还编写了一个快速的 Windows 服务来托管该服务(对我们来说不是理想的长期解决方案),并且 Net TCP 连接在那里工作正常,所以它在我的配置或代码中似乎没有任何内容,这意味着在 IIS 中/与 IIS 中某些东西不正确。应用程序的应用程序池是否必须在集成模式下运行?我尝试了两种方式,似乎没有什么不同,但我们的应用程序目前安装在经典模式下。

0 投票
2 回答
5021 浏览

wcf - win7 上的 WCF Duplex net.tcp 问题

我们有一个带有多个客户端的 WCF 服务来安排客户端之间的操作。它在 XP 上运行良好。转到win7,我只能将客户端连接到同一台机器上的服务器。在这一点上,我认为这与 IPv6 有关,但我不知道如何继续。

尝试连接到远程服务器的客户端会出现以下异常:

System.ServiceModel.EndpointNotFoundException:无法连接到 net.tcp://10.7.11.14:18297/zetec/Service/SchedulerService/Scheduler。连接尝试持续了 00:00:21.0042014 的时间跨度。TCP错误码10060:连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应10.7.11.14:18297。---> System.Net.Sockets.SocketException: 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接主机没有响应 10.7.11.14:18297

服务配置如下:

客户端连接如下:

我检查了我的防火墙大约十几次,但我想我可能遗漏了一些东西。试过禁用windows防火墙。我尝试将 localhost 更改为我的 ipv4 地址以尝试远离 ipv6,我尝试删除任何反 ipv6 代码。

不知道这是否意味着什么,但是:

Microsoft Telnet> open 10.7.11.14 18297
Connecting To 10.7.11.14...无法在端口 18297 上打开与主机的连接:连接失败

不幸的是,telnet 测试似乎不是关键。当服务运行时,我已经成功地从本地主机和远程计算机连接到我的服务端口,但是我的客户端无法从远程计算机工作。

似乎并不总是保证连接到本地主机。台式机 (win7/32) 工作,笔记本电脑 (win7/64) 不工作。其他 win7/64 盒子虽然可以工作。也许是由于笔记本电脑上有多个网卡?也没有解释在测试人员的系统上连接失败。

我设置了两台完全禁用 IPv6 的 win7 机器(使用http://support.microsoft.com/kb/929852中的 0xffffffff )。没有帮助。

0 投票
2 回答
5219 浏览

wcf - WCF net.tcp 绑定、消息格式和安全问题

很抱歉这些愚蠢的问题,但是关于 WCF 的一些事情我无法理解。对于以下内容的一些建议将非常有用......

  • 在非常基本的层面上,WCF 使用二进制 (Net.Tcp)、HTTP 或 MSMQ 在线传输我的消息是否正确?

  • 但是,在所有情况下,无论数据如何传输,消息本身是否都以带有标头和正文的 SOAP 格式传输?所以它是一种以 HTTP/S 或二进制格式传输的 XML 消息。

  • Net.Tcp 对我的客户端服务器应用程序来说是一个不错的选择吗?它类似于信使应用程序,因为客户端都是位于我服务器防火墙另一侧的远程用户。我正在阅读的大部分内容都在告诉使用 WS* 和 HTTP。

  • Net.Tcp 是否受标准保护且没有证书?- 也就是说 - 人们无法通过网络收听并解码传入和传出的数据。

  • 是否可以在没有安装证书的情况下使用 net.tcp 发送用户名和密码?

  • 如果是这样,我想我可以将它连接到我的会员提供者并验证对我的服务合同实现中每个方法的访问。

  • 我假设在用户名和密码安全的情况下,代理使用用户名和密码进行初始化,并且每个请求都会发送此信息。

  • 然后将为每个方法调用调用我的成员资格提供程序,并执行它需要做的任何事情来获得该方法的授权。

很抱歉问题转储,但很高兴知道我是否以正确的方式思考 WCF 的工作方式。

谢谢。

0 投票
1 回答
14123 浏览

wcf - 使用 SSL 的 wcf net.tcp

有没有人在 WCF 中使用 SSL 和 net.tcp 绑定?

我已经阅读了它的可能,但没有找到关于如何实现它的好信息。我很想听听任何知道或已经实施这一点的人的意见。

提前致谢...

0 投票
3 回答
2494 浏览

wcf - 多个客户端的 WCF 阻塞问题!

我似乎对 WCF 有阻塞问题。

假设我有两个用户,每个用户都使用 net.tcp 创建了他们自己的类实例,该实例暴露在 WCF 主机上,端点类似于“net.tcp://localhost:32000/SymHost/”。该类是 PerSession 上下文,并发是可重入的。该类公开了两个方法 Alive() ,它们立即返回一个布尔值 true 和一个我插入的 AliveWait ,它在返回 true 之前执行 Thread.Sleep 4 秒(测试目的)。

现在客户端 1 调用 AliveWait() 在此期间他被阻塞,这很公平,但是如果客户端 2 在其自己的实例上调用 Alive() 他必须等到客户端 1 的调用返回 - 这种行为不是我的会期待吗?我本来希望客户端 2 继续进行,就好像什么都没发生一样,或者这与它们共享同一个端点的事实有关吗?

谁能解释发生了什么以及我如何确保客户端 2 可以不间断地调用自己的实例?

非常感谢任何帮助!

0 投票
1 回答
1877 浏览

c# - WCF net.tcp windows 服务 - 呼叫持续时间和未完成呼叫随时间增加

我有一个 Windows 服务,它使用 ServiceHost 类使用 net.tcp 绑定来托管 WCF 服务。我对配置进行了一些调整以限制会话和连接数,但似乎每隔一段时间我的“未完成呼叫”和“呼叫持续时间”就会上升并保持在 perfmon 中。在我看来,我在某处有泄漏,但我拥有的代码都相当少,我依靠 ServiceHost 来处理细节。

这是我开始服务的方式

我的错误事件只是执行以下操作(或多或少,删除了日志记录等)

这是我的 app.config 中的一些片段,以显示我尝试过的一些事情

显然有一些资源被占用了,但我认为我的配置涵盖了所有内容。我只获得了大约 150 个客户,所以我认为我不会达到我的“300”限制。“每秒调用次数”在每秒 2-5 次调用之间保持不变。该服务将运行数小时和数小时,其中 0-2 个“未完成呼叫”和非常低的“呼叫持续时间”,然后最终它将达到 30 个未完成呼叫和 20 秒的呼叫持续时间。

关于什么可能导致我的“未完成呼叫”和“呼叫持续时间”飙升的任何提示?我在哪里泄漏?指出我正确的方向?

0 投票
1 回答
17885 浏览

wcf - WCF 中的 mexTcpBinding - IMetadataExchange 错误

我想让 WCF-over-TCP 服务正常工作。我在修改自己的项目时遇到了一些问题,所以我想从 VS2008 中包含的“基本”WCF 模板开始。

这是初始的 WCF App.config,当我运行该服务时,WCF 测试客户端可以正常使用它:

这完美地工作,完全没有问题。

我认为将其从 HTTP 更改为 TCP 将是微不足道的:将绑定更改为其 TCP 等效项并删除 httpGetEnabled serviceMetadata 元素:

但是当我运行它时,我在 WCF 服务主机中收到此错误:

System.InvalidOperationException:在服务 Service1 实施的合同列表中找不到合同名称“IMetadataExchange”。将 ServiceMetadataBehavior 添加到配置文件或直接添加到 ServiceHost 以启用对此协定的支持。

我感觉您无法使用 TCP 发送元数据,但这就是为什么有 mexTcpBinding 选项的原因?

0 投票
4 回答
1586 浏览

wcf - 用于非 HTTP 协议应用程序的 Elmah 或没有 HttpContext 的 Elmah

我们正在开发一个 3 层应用程序,并且我们被允许使用最新最好的(MVC2、IIS7.5、WCF、SQL2k8 等)。应用程序层通过 WCF 服务向各种 Web 应用程序公开。由于我们同时控制服务端和客户端,因此我们决定使用 net.tcp 绑定,因为它们的性能优于 HTTP。

我们希望在 Web 应用程序和服务上使用ELMAH进行错误记录。这是我的问题。有很多关于将 ELMAH 与 WCF 结合使用的信息,但都是针对 HTTP 绑定的。有谁知道您是否/如何将 ELMAH 与暴露非 HTTP 端点的 WCF 服务一起使用?

我的猜测是否定的,因为 ELMAH 需要 HttpContext,这需要在 web.config 中将AspNetCompatibilityEnabled标志设为 true。来自MSDN

IIS 7.0 和 WAS 允许 WCF 服务通过 HTTP 以外的协议进行通信。但是,在启用了 ASP.NET 兼容模式的应用程序中运行的 WCF 服务不允许公开非 HTTP 终结点。当服务接收到它的第一条消息时,这样的配置会生成一个激活异常。

如果确实不能将 ELMAH 与具有非 HTTP 端点的 WCF 服务一起使用,那么接下来的问题是:我们能否以不需要 HttpContext 的方式使用 ELMAH?或者更一般地说(以免犯薄金属尺错误),有没有办法将 ELMAH 与具有非 HTTP 端点的 WCF 服务一起使用?

注意:我知道我们可以下载 Elmah 源代码并将其更改为添加 shim 或删除 HttpContext 依赖项,但我试图避免分叉代码。

0 投票
4 回答
3255 浏览

wix - How to add net.tcp to the "Enabled protocols" by using a WIX 3.5 project/setup?

We have a few MSI packages (generated by WIX) that install WCF services. Most of these services need net.tcp for their endpoint bindings.

I'd like to make our deployment life easier and automate the process of adding net.tcp. I already know the WixIisExtension.dll and make use of its useful functions (create web site, virt. directory, etc.).

Can I use the WixIisExtension to enable the net.tcp protocol? If not, how can I achieve that?

0 投票
4 回答
91470 浏览

iis-7 - 在 IIS7 中启用 net.tcp

如何让IIS处理net.tcp连接?