问题标签 [wcf-binding]

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 回答
1908 浏览

hosting - 如何防止他人添加托管 wcf 服务的服务引用?

如果我托管 WCF 服务以便某人(即我认识的人)可以使用我的服务,但如果其他人(即我不认识的人)使用它,我会怎么做?我该如何防止这种情况?如何实现?

是否可以通过服务节流来完成,或者有什么其他方法可以实现这一目标?

0 投票
1 回答
360 浏览

wcf - WebServiceHost 不调用自定义 ChannelListener 的 OnAcceptChannel

我目前正在构建一个自定义绑定,该绑定从不同于侦听 TCP 套接字的源获取 HTTP 请求。当我直接访问和打开频道时,没有问题。但是,当我尝试在 WebServiceHost 的端点中托管我的绑定时会出现问题。

我已将 Console.WriteLine() 调试消息插入到自定义绑定代码的每个函数中。在调用我的 ChannelListener 的 OnOpen() 函数之前,一切正常。之后,ServiceModel 只是不想调用 OnAcceptChannel() 方法。没有异常,没有错误信息;它只是挂在那里,不再调用我绑定的任何其他函数。我已将应用程序的输出注释到下面的代码中。

你们中有人知道我必须在我的应用程序中更改哪些 OnAcceptChannel 方法被正确调用吗?

干杯

0 投票
1 回答
5917 浏览

soap - WCF 中的自定义标头

我想在我的 wsdl 上为传入的肥皂消息添加特定的自定义标头,因此我已将所需的标签添加到 web.config 的标头节点中,如下所示:

但是,如果自定义标签中的“值”设置为“值”,则当我更改此值时服务将其踢出并给出以下错误,则此方法可以正常工作;

'DestinationUnreachable -由于 EndpointDispatcher 的 AddressFilter 不匹配,接收方无法处理带有“ http://localhost:3537/Service1.svc ”的消息。检查发送方和接收方的 EndpointAddresses 是否一致。

那么如何为标签之间的实际值指定变量值?就像在 url 模板中一样

有什么想法,还是我以错误的方式处理自定义标题?我不想使用 messageContract,因为我们使用 RPC 样式肥皂而不是文档样式。

另一个奇怪的事情是,要使消息有效,标题元素中定义的自定义必须指定带有 ws-addressing 命名空间的“IsReferenceParameter="true"' 属性,否则会引发上述错误?

谁能给我解释一下?

提前致谢

乔恩

0 投票
3 回答
6316 浏览

wcf - 连接被拒绝 - 工作中的 nettcp WCF 服务 - 通过 VPN 连接的客户端

场景如下:客户端计算机已通过 VPN(Cisco VPN 客户端)连接到“工作网络”。工作网络托管一台具有带有 nettcp 绑定的 WCF 服务的计算机。客户端尝试连接到此服务并收到如下异常:

无法连接到 net.tcp://workMachine:2010/SomeService。连接尝试持续了 00:00:01.3180754 的时间跨度。TCP 错误代码 10061:无法建立连接,因为目标机器主动拒绝它 workMachine:2010。

我尝试过的事情:

  1. 将客户端机器的Workgroup改为工作网络workgroup
  2. 为 Windows 网络密码保险库添加了域/用户名/密码,以便它可以用于连接
  3. 使用 IP 地址而不是 workMachine 名称更改了 wcf 服务路径
  4. 检查客户端计算机防火墙并添加以允许 wcf 客户端通过它

以上都失败了,没有工作。有没有人遇到过类似的问题?

客户端计算机在 Windows 7 上

WCF 服务的 SecurityMode 设置为 NONE - 所以这不应该是一个问题。

任何见解都会有所帮助

0 投票
1 回答
226 浏览

wcf - TryReceiveRequest 被无限次调用

我已经构建了一个自定义绑定,以便能够从其他来源接收 HTTP 消息。但是,它还不是没有错误的。

我观察到,一旦处理了第一个请求,我的服务就会将 CPU 使用率提高到 100%,并且随着请求的数量越来越多,服务变得越来越慢。在将日志记录命令插入每个命令后,可以看到这种行为的原因绑定的功能。

直到第一个请求进入之前,一切正常:

然后,完成第一条消息的处理:

通道实现了 IReplyChannel 接口,因此只能获取请求,回复它,然后关闭通道。ServiceModel 不只是关闭通道,而是继续在已使用的通道上发送垃圾邮件 TryReceiveRequest,而不管过去是否已使用该通道。

有什么方法可以正确解决这个问题吗?为什么ServiceModel在关闭回复上下文后不关闭通道,尽管在使用后保持通道打开是没有用的?

0 投票
1 回答
2229 浏览

asp.net - WCF 异常 - 未签名“正文”、“http://www.w3.org/2003/05/soap-envelope”所需的消息部分。问题

我在本地运行一个 WCF 客户端,它总是抛出带有以下文本的 MessageSecurityException: “从另一方收到不安全或不正确安全的故障。有关故障代码和详细信息,请参阅内部 FaultException。”

内部异常消息是:“验证消息安全性时发生错误

我设置了一个跟踪,在该文件中我可以看到“内部内部”异常消息为:“ 'Body',' http://www.w3.org/2003/05/soap-envelope '所需的消息部分是没有签名。

客户端和服务之间的绑定都完美匹配,它们都使用 netTcpBinding 和 securityMode="Message"。

装饰服务背后接口的ServiceContract是:

什么可能导致我的错误?我不是 WCF 专家,所以如果您需要更多信息,请发表评论。关于尝试什么的任何想法也会有所帮助,我只是不知道这里发生了什么。

0 投票
1 回答
1480 浏览

xml - 在 WCF 服务中使用 GetReaderAtBodyContents 的“文件意外结束”

我正在运行一个通过自定义绑定接受 SOAP 消息的 Web 服务。

消息被正确发送,并且大部分都得到了很好的处理。在处理消息时,正在使用以下命令将消息读取到 XmlDocument:

但是,当服务上的负载增加时(可能是线程问题?无法想象,因为在我的自定义传输通道使用 WebMessageEncoder 创建消息后,无法在其他任何地方访问消息),尽管输入消息是,但很少抛出 XmlException好的。

文件意外结束。以下元素未闭合:A、B、Body、Envelope。第 28 行,第 9 位。

由于我在这一行的代码中放置了一个断点,我可以查看 msg.ToString() 的当前值,它为我提供了一个 XML 文件,该文件在http://www.validome.org/等验证器中验证良好xml/验证/

请注意,调用 msg.ToString() 并不总是必须正常工作,因为主体也可以是流形式,只能使用 msg.GetReaderAtBodyContents() 处的阅读器读取一次。

这种奇怪行为的原因似乎是在我的自定义绑定中,因为它使用 WebHttpBinding 处理超过 25000 个请求时可以正常工作。

在我的传输通道中,我在将消息从输入源提取到 byte[] 正文后使用此代码。

之后应用标头,然后将消息直接放入 RequestContext 的 RequestMessage 属性中。错误中一定有我忘记的东西。但是什么?

0 投票
4 回答
12697 浏览

wcf - 如何为需要客户端身份验证证书的 Web 服务添加对 WCF 客户端的服务引用

小心,WCF noobie 警报

我需要创建一个 WCF 客户端来查询非 WCF Web 服务。Web 服务不是 WCF 服务。此外,Web 服务需要客户端身份验证证书。现在,我有了证书,可以创建一个完美运行的非 WCF 客户端;我能够“添加 Web 引用”并打开一个证书对话框以允许我选择适当的证书,然后继续创建 Web 引用。尝试通过“添加服务引用”创建 WCF 客户端是另一回事,它只是失败并出现 403 Access Denied 错误。

我有该服务的 WSDL,并在其上运行了 svcutil.exe,但不知道如何从那里继续。

谢谢你的帮助!

0 投票
2 回答
2913 浏览

java - 如何使用 Java 客户端在 WCF 中创建的 SOAP 1.2 Web 服务?

我正在开发一个 Web 服务项目,我必须在其中实现一个应该可以在所有平台上互操作的 Web 服务。所以最初我使用 basicHttpBinding,因为它使用 SOAP 1.1,但我想要 WS-* 的特性,如可靠消息传递、安全性、异常。所以我使用了 wsHttpBinding,它是一个 SOAP 1.2 标准。

现在,在我的测试服务器上部署后,我使用 Netbeans IDE 生成了一个 Web 服务客户端。所以作为回报,它调用java中的wsimport工具来生成代理类。当我调用任何方法时,它只会进入非工作状态,就像 5 分钟内没有活动一样。所以我无法弄清楚 Java 客户端是否可以使用在 WCF 中创建的 SOAP 1.2 Web 服务?

我需要知道是否需要对所有功能使用除 wsHttpBinding 之外的任何其他绑定,并且还需要具有互操作性。

当我调用 web 方法时我没有收到任何错误。我尝试调试它但没有帮助。我在调用该方法的行上设置断点,当调试器到达该行时没有任何反应,IDE 显示运行状态但没有活动。如果有人可以建议一个工具来监视对服务器的 Http 请求。

0 投票
5 回答
28489 浏览

c# - WCF Service Library with NetTcpBinding

I'm having a tough time with NetTcpBinding.

When I run my WCFservice,I get this:

I'm getting this when I run the application by default using WCFSvcHost. There's no extra code.Just the default code of any new wcf service. All I wanted to do was change the binding to tcp.

How do I solve this problem?

Edit: Here's my WCF's App.config