问题标签 [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 投票
1 回答
946 浏览

wcf - WCF双工服务(TCP绑定)的客户端可以同时发送和接收吗?

我目前的代码如下所示:
服务器端:

客户端一会

代理单选:

目前我的应用程序是这样工作的:成功登录后,每个客户端都会发送 WcfElements(其中包含一堆带有 id 和元素版本的列表)。然后它发送 ReadyToReceive 一种方式的消息,在登录后触发 performsync 方法。该方法为客户端准备数据并使用单向接收方法首先发送它们。如果有多个 wcfelement 要发送,则只有最后一个被标记为最后一个。每次从服务器成功接收后,客户端都会以 ReadyToReceive 响应。到目前为止,一切都很好。问题稍后开始。大多数包丢失(方法receiveWcfElement)。服务器已标记客户端正在接收并可能正在处理消息,并且正在等待准备接收数据包,由于丢失元素,该数据包将永远不会发送。

我之所以这样做,是因为据我所知,客户端不能同时发送和接收。我已经尝试过这个并遇到了这个问题:如果客户端使用 SendWcfElement 方法发送 wcfElement,并且服务器由于处理此元素而创建了另一个应该发送回客户端的元素,那么如果在 sendWcfElement 返回 true 之前发送回调,则客户端会出现代理错误表示该方法已完成。

现在我想知道客户端是否可以使用两种方式同时发送和接收?

0 投票
3 回答
5881 浏览

wcf - 无法在 wcf 示例中的 net.tcp 示例上成功运行 svcutil

我刚刚从 Microsoft WCF 示例下载并运行了 net.tcp 绑定示例:WF_WCF_Samples\WCF\Basic\Binding\Net\Tcp\Default\CS

我打开解决方案并重建它,从 server/bin 目录启动服务器,从 client/bin 目录启动客户端,一切正常。

我在 service.cs 中添加了一个新函数,然后从 client.cs 中调用它。但是visual studio给出了这个错误:'Microsoft.Samples.NetTcp.CalculatorClient'不包含'AddAndDouble'的定义并且没有扩展方法'AddAndDouble'接受'Microsoft.Samples.NetTcp.CalculatorClient'类型的第一个参数可以找到(您是否缺少 using 指令或程序集引用?)

我假设它给出了这个错误,因为我的 generateClient.cs 文件现在已经过时了,所以我试图运行 svcutil 来生成一个新的 generateClient.cs 文件。

但是当我运行 svc util 时,它是这样说的:


c:\Program Files\Microsoft Visual Studio 9.0\VC>svcutil.exe net.tcp://localhost:9000/servicemodelsamples/service/

Microsoft (R) 服务模型元数据工具 [Microsoft (R) Windows (R) Communication Foundation,版本 3.0.4506.648] 版权所有 (c) Microsoft Corporation。版权所有。

尝试使用 WS-Metadata Exchange 从“net.tcp://localhost:9000/servicemodelsampl es/service/”下载元数据。此 URL 不支持 DISCO。Microsoft (R) 服务模型元数据工具 [Microsoft (R) Windows (R) Communication Foundation,版本 3.0.4506.648] 版权所有 (c) Microsoft Corporation。版权所有。

错误:无法从 net.tcp://localhost:9000/servicemodelsamples/service/ 获取元数据

如果这是您有权访问的 Windows (R) Communication Foundation 服务,请检查您是否已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅位于http://go.microsoft.com/fwlink/?LinkId=65455的 MSDN 文档。

WS 元数据交换错误 URI:net.tcp://localhost:9000/servicemodelsamples/service/

9000/servicemodelsamples/service/'.

ng 您的消息或远程主机超出接收超时,或潜在的网络资源问题。本地套接字超时为“00:04:59.9687500”。

如果您需要更多帮助,请输入“svcutil /?”

因此,我通过执行以下操作检查了服务器是否正在监听:netstat /an | 查找 /i "9000" TCP 0.0.0.0:9000 0.0.0.0:0 监听

任何想法我做错了什么?

0 投票
2 回答
11069 浏览

c# - 如何修复 WCF“net.tcp 不支持请求的升级”错误?

我在本地 IIS7 上运行了一个 asp.net mvc 3 应用程序。这引用了一个很好用的 WCF 服务。

我最近添加了对托管在同一位置的另一个服务的引用,当调用方法时出现以下错误:

“net.tcp://webdev02:15001/CommonService/Service.svc/mex”不支持请求的升级。这可能是由于不匹配的绑定(例如,在客户端而不是在服务器上启用了安全性)。

该服务的 web.config 在第一个工作服务和第二个非工作服务的绑定之间具有相同的设置。我的客户也有同样的故事。

我还使用我的 Windows 凭据进行连接,如下所示:

此外,我可以使用 WcfTestClient 成功调用这两个服务。关于为什么不为我工作的任何想法?在此先感谢您的帮助。

0 投票
1 回答
836 浏览

wcf - 我是否需要 svc 文件来为非 HTTP 服务设置 Castle Wcf 设施

我对城堡 wcf 设施注册感到困惑。

我阅读了一些有关 BasicHttpBinding 的博客文章。但是找不到一个清晰的简单示例来设置 net.tcp 设置。

我想从控制台应用程序托管服务...

我写了这样的东西......你能在这里看到问题吗?

0 投票
4 回答
5807 浏览

wcf - 无法访问具有 net.tcp 绑定的 IIS 托管的 WCF 服务

我正在尝试在 64 位 Windows 7 上的 IIS 7.5 站点中托管具有 net.tcp 绑定的 WCF 服务。可悲的是,该服务无法访问。事实上,使用 telnet 打开与 TCP 端口的连接甚至会失败。

这是我的网站 web.config 的 system.serviceModel 部分的样子:

在 IIS 管理器中,我设置了一个站点,其中包含一个以 NETWORK SERVICE 身份运行的应用程序池,具有 v4.0 .NET Framework 和集成管道。该站点有一个绑定类型,net.tcp“绑定信息”设置为9000:*

在我电脑的服务下,我启动了之前停止的“Net.Tcp Listener Adapter”和“Net.Tcp Port Sharing Service”服务,并让它们都自动启动。我还确保安装了“Windows Communication Foundation Non-HTTP Activation”。

我还需要做什么才能让 IIS/WCF/WAS/whatever 监听端口 9000,以便激活和调用我的服务?

我的问题类似于Host WCF service with net.tcp binding through IIS Manager 7.5,但是 OP 没有注册,他的问题也没有得到回答。我打开这个问题,所以我可以发布我自己的详细信息。

更新

我发现了一些额外的线索。我决定添加第二个绑定,以便在尝试找出 net.tcp 问题的同时使用 HTTP 绑定。现在,当我尝试访问 HTTP 端点时,我收到了这个错误

找不到与具有绑定 NetTcpBinding 的终结点的方案 net.tcp 匹配的基地址。注册的基地址方案是 [http]

我很清楚这里HTTP 和 net.tcp 的绑定:

所以“注册基地址方案”这句话让我很担心;为了让我的站点支持 net.tcp 方案,我还需要做些什么吗?

0 投票
1 回答
431 浏览

wcf - 获取 CommunicationObjectFaultedException

我在本地 IIS 7 Web 服务器中托管了一个 WCF NET.TCP 服务。Silverlight 应用程序访问此服务。silverlight 应用程序嵌入在同一本地 Web 服务器上托管的另一个网站的 aspx 页面中。当我在本地计算机上访问该网站时一切正常,但是当我使用另一台计算机访问该网站时,silverlight 应用程序会引发如下异常:

问题是什么?

0 投票
2 回答
519 浏览

c# - 为什么我的自签名证书不起作用?

多奇怪。几个月前,我编写了一个 WCF 服务,我在本地机器上使用自签名证书通过安全的 Net.Tcp 连接对其进行了测试;一切正常。然后我使用真正的 SSL 证书部署到云服务器,一切仍然正常。

但是现在,我需要再次在本地机器上调试一些代码,并且发生了一些变化,以至于我的本地 WCF 连接不再工作了!(不,证书没有过期!)大约 2 分钟后,我得到一个EndpointNotFoundException

这是创建客户端连接的代码:

这是服务器端的配置:

0 投票
2 回答
2589 浏览

wcf - IIS 7 / WAS 上的 WCF net.tcp 端口共享

我是 wcf 编程的新手,我一直在做一个小项目,但在 net.tcp 端口共享方面遇到了问题。我正在使用 .net 框架 4 和 iis 7。

我有两个 wcf 服务(serviceA 和 serviceB)托管在我们的服务器上,位于 IIS 上的不同网站中。每个网站都有自己的 .svc 文件、web.config 和 bin。如果我在不同的 net.tcp 端口上拥有这些服务中的每一个,那么就没有问题,我可以从我的电脑上的 Visual Studio 中为它们中的每一个添加服务引用。服务运行良好。

然而,我们很快就会开始一个包含更多服务的项目,我们希望避免为每个服务打开一个 tcp 端口,所以我一直在尝试让 serviceA 和 serviceB 共享端口。如果我将它们设置在同一个端口上,那么我可以访问我添加的第一个服务,但是当我尝试访问添加到同一个端口的第二个服务时,我收到以下错误:

元数据包含无法解析的引用:“net.tcp:// myserver /serviceB.svc”。套接字连接被中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或者是潜在的网络资源问题引起的。本地套接字超时为**。远程主机强行关闭现有连接如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。

我无法弄清楚出了什么问题。我对该主题进行了大量搜索,并确保以下服务正在运行:

Windows 进程激活服务 Net.Tcp 端口共享服务 Net.Tcp 侦听器适配器

此外,net.tcp 是网站高级设置中启用的协议。我目前最好的猜测是它可能与我在 IIS 管理器中定义 net.tcp 绑定的方式有关。我的两个运行其独立服务的网站都具有以下内容: 808:*(net.tcp) 这是正确的吗?

正如我之前所说,如果在两个单独的端口上设置 tcp 服务运行良好,因此问题必须与端口共享有关。非常感谢任何建议

0 投票
7 回答
50641 浏览

wcf - 服务器已拒绝客户端凭据

我有一个带有 net.tcp 绑定的 WCF 服务,作为 Windows 服务托管在服务器上。我无法访问此服务。但是,当我将它托管在本地网络上时,我能够这样做。

收到错误

消息:** 服务器已拒绝客户端凭据。

内部异常:

尝试搜索解决方案,但没有找到符合我要求的解决方案,因此在此处发布。

可能是什么问题呢?

如果我在客户端将我的安全模式设置为无

我得到另一个错误:

错误:套接字连接被中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或者是潜在的网络资源问题造成的。本地套接字超时为“00:00:59.5149722”。

0 投票
0 回答
790 浏览

wcf - Silverlight 4,带有 net.tcp 端点的 WCF,代理不请求 clientaccesspolicy.xml

我一整天都在尝试让我的 Silverlight 应用程序与 WCF net.tcp 绑定一起工作并且无法成功,即使在我看来我已经做对了所有事情,包括在谷歌搜索之后......

我有一个带有 basicHttpBinding 端点的 WCF 服务,它运行良好,并且由于我的 WCF 服务和我的 Silverlight 应用程序在同一个网络上,我告诉自己“为什么不尝试 HTTP 以外的其他东西?”


所以我开始用谷歌搜索看看必须做什么,这是我做了什么:

服务器

  • 检查 Net.Tcp Listener Adapter 服务是否正在运行

IIS

  • 在我的网站上启用 net.tcp 绑定,绑定信息设置为“4502:*”
  • 向托管我的 WCF 服务的应用程序添加了 net.tcp 协议
  • 在 clientaccesspolicy.xml 文件中添加了一个策略以允许端口 4502-4536 上的套接字连接

WCF 服务

  • 添加了一个 net.tcp 绑定,Security 设置为 None
  • 为我的服务添加了一个带有此绑定的端点,保持常规 HTTP 端点

完成所有这些之后,我可以将我的 WCF 服务与 WcfTestClient 一起使用,它可以看到两个端点(HTPP 和 net.tcp),并且它们都像魅力一样工作。

在我的 Silverlight 应用程序中,我可以更新我的服务引用(我添加了我的服务的 HTTP 地址,而不是 TCP 一个),它还可以看到两个端点,因为它在 ServiceReferences.ClientConfig 中添加了 TCP 端点。正如我在谷歌搜索时看到的,Silverlight 不支持 netTcpBinding,因此它将绑定描述为带有 a 和 a 元素的自定义绑定。

我在我遵循的不同教程中看到,对于 HTTP 绑定,Silverlight 要求提供一个套接字策略文件来检查客户端是否可以访问 WCF 服务。在 SL4 Beta 中,此文件由 TCP 在端口 943 上请求。对于 SL4 RC 和 RTM,它由 HTTP 在端口 80 上请求,因为它是用于 HTTP 绑定的。

问题是,当我使用设置为使用 net.tcp 绑定的代理启动我的应用程序时,我检查了 Fiddler,在任何时候都没有请求 clientaccesspolicy.xml,并且当套接字策略文件不是时出现经典错误present : TCP 错误代码 10013: 试图以访问权限禁止的方式访问套接字。

谷歌搜索后,我发现 SL 使用服务器的 IP 地址而不是其名称来查找此文件,但在客户端计算机上的浏览器中尝试http://IP_OF_MY_SERVER/clientaccesspolicy.xml会按预期提供文件...

所以我在这里有点迷路,我真的很想让它看到除了 HTTP 和 WCF 之外的东西......

有人有任何线索猜测会发生什么???由于该服务与带有 net.tcp 绑定的 WcfTestCLient 一起按预期工作,我猜这与 SL 有特殊关系......

谢谢阅读 :-)