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

wcf - 当 SSL 位于 IIS 场 (WCF) 前面的代理上时,如何使用 Forms Auth?

这是我的场景:

我有一个实际安装了 SSL 证书的代理,它位于负载平衡网络场的前面。每个 IIS 服务器都没有 SSL,因此我无法通过 wsHttp 绑定使用传输安全性。我没有调查 basicHttp,因为我们希望提供带有此解决方案的 SOAP 1.2。除此之外,我的网络团队不允许在消息级别使用任何证书进行加密。(我敢肯定,仅此一项就可以解决我的困境)

我的安全组要求我们使用表单身份验证(成员资格提供程序)。

最终的解决方案必须允许 SSL 通过前端代理,但某种类型的 WCF 绑定将复杂性封装在配置文件中。

我正在使用允许通过明文发送用户名/密码的自定义绑定,但是当我尝试通过 https 连接时,我得到了通常的“http 预期”uri 错误。

如何通过代理使用 SSL 从客户端应用程序安全地连接到 Web 服务,但没有在 IIS 上安装 SSL 并利用 WCF 堆栈 + 表单身份验证?

我对 WCF 并不陌生,但是这种非常自定义的设置似乎让我不确定要求是否允许任何类型的“简单”解决方案。

先感谢您!

编辑: 我终于完成了这项工作,并决定写一篇简短的博客文章,其中包含编写自定义绑定所需的完整源代码。

0 投票
3 回答
4686 浏览

wcf - 在 WCF 中通过 net.pipe 运行多个服务

我正在构建一个需要 6 种不同服务的分布式应用程序。我必须使用 Visual Studio 2008 在我的 XP 笔记本电脑上演示该应用程序。

是否可以同时在 localhost 上运行多个服务,全部使用 net.pipe?

例如:

如果没有,是否有任何其他方法可以在不使用 IIS/webdev 服务器的情况下托管这些 WCF 服务?网络.tcp? 还有什么?

0 投票
2 回答
1590 浏览

wcf - 在 WCF 服务中公开自定义复杂接口类型的问题

我正在尝试使用 WCF 从另一个应用程序中获取对象。使用内置类它可以正常工作,但是在尝试从 WCF 操作返回自定义接口类型时遇到了问题。

无论我在两个应用程序中分别包含接口,还是将其指定为共享程序集,我都会得到相同的结果:带有消息“从管道读取错误:无法识别的错误 109”的 CommunicationException。

界面如下所示:

我的服务器如下所示:

这是我的接口实现:

客户端看起来像这样:

除了这一行之外,一切都像魅力一样:

它给了我一个 CommunicationException 消息“从管道读取错误:无法识别的错误 109”。据我所知,这是由于故障状态导致的管道损坏,但我不知道为什么,或者更重要的是如何修复它。有任何想法吗?

我没有配置文件,因为上面的代码中已经完成了所有操作,所以我不知道如何打开跟踪,否则我也会包含它。

0 投票
3 回答
69975 浏览

.net - net.pipe vs. net.tcp vs. http 绑定

我是 WCF 的新手,想知道以下每个绑定的差异/优势/限制/等:

支持关于何时使用每个绑定和其他示例的场景将不胜感激。

0 投票
1 回答
4176 浏览

c# - 动态设置 WCF baseAddressPrefixFilters

我有一个在共享托管环境中部署的 WCF 服务。因此,我必须指定baseAddressPrefixFilters(请参阅此处的答案以了解为什么这是必要的)。设置基地址前缀过滤器发生在 web.config 中,如下所示......

问题是我有多个使用自己的 url 以这种方式配置的环境(即 dev、test、prod)

我尝试了以下没有运气...

所以问题是如何在运行时动态设置 baseAddressPrefixFilter ?

0 投票
3 回答
8944 浏览

wcf - 在 WCF 服务中使用 protobuf

我的 asp.net 网页位于 IIS Web 服务器上,它使用基本的 HTTP 绑定与 WCF 服务(位于 Windows 2008 应用服务器上)进行通信。我的 wcf 服务的性能似乎不是那么好,我想改进它。此外,我需要平衡可伸缩性,因为我的网站将有非常高的流量。

HTTP 压缩,节流是我知道的一些方法,但还没有尝试过。我可以使用protobuf API ...请建议...

0 投票
3 回答
14885 浏览

.net - WAS 通过 net.tcp 绑定托管 WCF 服务

我正在尝试在一组计算机上发布一个计算服务,这些计算机将由应用程序服务器使用。计算服务器是有状态的,需要能够执行异步回调,所以我想通过 TCP 使用每个会话设置。

服务应用程序是使用 VS2008 中的 WCF 服务应用程序项目类型构建的。

碰巧计算服务机器正在运行 Vista,所以根据我读过的文档,我应该能够使用 WAS 托管。我正在尝试遵循 Microsoft 关于该主题的说明:

安装和配置 WCF 组件

在 WAS 中托管 WCF 服务

但是我很早就遇到了麻烦。我应该将 .svc 文件放在我的应用程序的虚拟目录中。但是由于我没有使用 IIS 托管,如何创建虚拟目录?上面的文档对此并不清楚。

此外,当尝试运行允许 net.tcp 访问我的应用程序的命令时:

我不知道用什么来代替<WCF Application>。同样,似乎缺少一个以“类似 IIS 托管”的方式发布服务的先前步骤。

我创建了一个尝试使用该服务的测试应用程序。当我单击“添加服务引用”时,它会发现我的服务,但无法使用 net.tcp 连接到它。

这里有没有人成功地托管和使用了一项服务?你对我有什么指示吗?

更新:我现在尝试使用 IIS 管理器将 net.tcp 绑定添加到网站(右键单击 -> 编辑绑定...),但“添加...”对话框中唯一可用的协议是 http 和 https。该列表中没有 net.tcp。是的,我已经安装了非 http 激活组件……很奇怪。

0 投票
3 回答
5674 浏览

c# - WCF:“无法打开 System.ServiceModel.Channels.ClientReliableDuplexSessionChannel”

我目前有一个带有回调合同(双工)的 WCF 服务,当我在我的计算机上使用使用它的应用程序时,一切正常,但是当我从另一台计算机尝试它时,它无法连接。

一旦我切换到使用它wsDualHttpBinding(用于回调),这些问题就开始出现,因为当我使用时wsHttpBinding一切正常。

为什么 Web 服务不接受来自其他计算机的请求?是否需要修改一些托管设置?


至于日志,我得到了这些:

替代文字 http://img17.imageshack.us/img17/4628/wcfissue.jpg

打开操作未在分配的 00:01:00 超时内完成。分配给此操作的时间可能是较长超时的一部分

无法打开 System.ServiceModel.Channels.ClientReliableDuplexSessionChannel

故障 System.ServiceModel.Channels.ClientReliableDuplexSessionChannel

故障 System.ServiceModel.Channels.ServiceChannel

无法打开 System.ServiceModel.Channels.ServiceChannel


该端口在我的路由器(TCP 和 UDP)上是打开的,所以这不是问题。

至于服务属性,这就是我正在使用的:

界面:

服务:


[更新]

关于Orion Edwards的帖子:

  • 没有防火墙
  • 见第 1 点
  • 是的,我可以,因为我的路由器上转发了端口
  • 我正在使用 IIS 来托管服务器。

问题是,当我从wsHttpBinding(工作正常)切换到wsDualHttpBinding(因为我需要回调)时,这个问题就开始发生了


[更新]

我现在已经切换wsDualHttpBindingNetTcpBinding并且出于某种原因,一切正常。

我使用这篇文章来帮助我在 IIS 上设置托管,谢天谢地,一切都按预期工作,带有回调。

0 投票
2 回答
891 浏览

silverlight - .NET Web 服务的 Silverlight 序列化导致 XML 错误

我有这个类由 Web 服务提供,然后由 Silverlight 应用程序使用(我不知道这是否相关)

我添加的_title变量来演示出了什么问题。当我在 silverlight 应用程序中引用 Web 服务时,它会生成以下 xsd:

请注意,只有 title 属性被简单命名,其他属性<Link>_BackingField在您尝试加载元素时完全消失,因为您不能在属性名称中包含 < 或 >。

为什么它序列化支持字段而不是公共属性?

0 投票
2 回答
10041 浏览

.net - WCF:如何以编程方式重新创建这些 App.config 值?

如果我创建服务而不指定任何绑定或端点(当我通过 Visual Studio 注册 WCF 时,它从 App.config 中生成的值中读取它),我有一个工作正常的 WCF 服务。

我有一个返回服务引用的简单方法:

这工作正常(因为值是从配置中读取的)。但是,我想在数据库中包含其中一些值(例如 URI),并且想做这样的事情:

这行不通。当我尝试使用服务引用时,它会引发异常。

我怀疑这是因为我的 App.config 有更多信息,而这两行没有提供(显然)。问题是,如何以编程方式复制以下 App.Config 值?

这是我的 App.Config 的片段:(URI 已被更改以保护无辜者)。