问题标签 [wcf-routing]

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

c# - 我怎样才能让 WCF 路由给我一个比没有匹配的 MessageFilter 更详细的错误消息?

有没有办法配置 WCF 路由,以便如果您的过滤器不匹配,您可以获得有关无法路由的消息的更多信息?

目前我们正在使用 AppFabric,我们只收到以下消息。在尝试找出与过滤器不匹配的消息时,此消息不是很有帮助。

0 投票
1 回答
1219 浏览

wcf - 通过 WCF 路由服务将调用路由到旧版 ASMX Web 服务

我正在开发一个包含对两个 .asmx Web 服务的引用的遗留应用程序。我们希望重构服务层以遵循更多的企业服务总线模式,其中客户端将其所有调用定向到一个服务,该服务处理将请求路由到适当的服务。

我一直在使用 WCF 路由服务,并且能够通过 RoutingService 成功地将对 WCF 服务的调用路由到相应的服务。

例如,客户端可以调用:

并且路由服务会将其转发到

通过我在配置中指定的规则

我想以某种方式使用 .asmx 服务实现相同的结果,我可以只更新旧应用程序中的 Web 引用 URL 以指向路由服务,然后路由服务会将请求转发到客户端所在的 URL目前使用

改变:

这可以按照我想的方式进行吗?

0 投票
1 回答
6497 浏览

wcf - WCF 路由服务错误 - EndpointDispatcher 的 ContractFilter 不匹配

情况如下:我有一个内部服务器运行一些 WCF 服务,我希望它们可以从整个 Internet 访问。为此,我编写了一个在我们面向公众的 Web 服务器上运行的路由服务。

这个路由服务似乎可以工作,但是当我尝试调用一个方法时,我总是收到以下错误。

由于 EndpointDispatcher 的 ContractFilter 不匹配,接收方无法处理带有 Action 'http://tempuri.org/IProcessManagementService/ListProcesses' 的消息。这可能是因为合约不匹配(发送方和接收方之间的操作不匹配)或发送方和接收方之间的绑定/安全不匹配。检查发送方和接收方是否具有相同的合同和相同的绑定(包括安全要求,例如消息、传输、无)。

我试图从服务中删除所有安全要求,并使用了 wsHTTP 和 basicHTTP 端点。似乎没有什么能解决问题。然而,路由服务正确地传递了 mex 服务,因此 svcutil 能够构建客户端类。

我正在通过代码配置路由器。为路由服务提供一个服务名称列表以提供路由,以及路由器和服务器地址。

这是路由服务的配置:

它使用以下代码调用一个函数,从配置文件中提供路由器地址、服务器地址和服务名称。

服务在启动时调用此函数,然后打开路由器列表中返回的每个服务主机。

服务器本身是通过以下 app.config 配置的

我错过了什么?

编辑:我想我发现了问题-路由服务正在为服务返回此配置-

这指向内部服务器,而不是外部服务器。不知道这是否是路由服务的标准行为,或者它是否是可覆盖的行为。

0 投票
1 回答
122 浏览

web-services - Web 服务提供者路由

我希望实现一个服务(web/windows,.net),它维护一个可用服务的列表,并且可以根据请求的性质或类型提供一个端点。然后,请求者可以将实际工作请求传递给提供的端点。实际的工作请求可能包含非常大的数据块(从 10MB 到甚至可能超过 GB)。

WCF 路由服务听起来很合适,但事实证明并非如此,因为它需要实际的工作请求才能通过它,从而在路由服务中造成瓶颈(重点是让系统能够横向扩展)。如果我有较小的消息,WCF 路由将毫无疑问。

有什么符合要求的吗?最好基于.NET/windows?

0 投票
0 回答
232 浏览

wcf - 双向路由服务

我有以下要求:

客户端可以调用路由器/中继服务,后者又调用目标服务器上的服务。目标服务器将结果发送回中继服务,中继服务会将其转发回客户端。

我已经查看了这个 SO question,但我认为这不足以满足我的需求,因为我认为这只是从客户端到中继服务,最后到目标服务器的单向消息。

我对 WCF 还很陌生,所以我想对这个问题有所了解,以便我将研究重点放在正确的方向上。

0 投票
1 回答
316 浏览

c# - Autofac 和 RoutingService

我正在尝试构建路由基础设施,并使用 Autofac 作为 IoC 容器。我阅读了wiki,并且知道以下步骤:

}

我这里有这个代码来满足我的场景:

这不起作用,因为我从 Autofac 收到错误,因为它找不到 RoutingService 的构造函数(它的构造函数是私有的)。

你有什么提示吗?

0 投票
4 回答
1337 浏览

wcf - 具有消息安全性的 WCF 路由

我有一个带有 Message Security Authentication的 WCF 服务。

我想为负载平衡设置路由服务。

由于某种原因它不起作用,我启用了 includeExceptionDetailInFaults 来查看异常,所以在客户端我看到:

未提供客户端证书。在 ClientCredentials 中指定客户端证书。

似乎证书不是从路由器->服务转发的。

目前客户端/路由器/服务在同一台机器上,所以我拥有所有证书,但如果我将它们部署在另一台机器上,路由器是否必须拥有私钥?

另外,如果我想在路由器和服务之间建立非安全连接(卸载安全性),我该如何提供调用者的身份?

编辑:对于所有客户端/路由器(服务器和客户端)/服务器,安全配置相同:

0 投票
0 回答
1114 浏览

.net - WCF 路由 Https 导致来自托管路由器的服务的多个请求

我有一个场景,我需要使用基本身份验证连接到安全的外部肥皂网络服务。通常这不是问题,这在我的本地开发环境中使用 basicHttpBinding。部署应用程序后,它将位于 DMZ 中,并且无法向世界发出呼叫。这在我们的内部网络上产生了对路由服务的需求,而 WCF 4.0 中的新路由功能似乎是一个不错的选择。我让代码通过路由服务作为 PoC 通过 http 调用不同的外部服务,然后决定迁移到 https。我很快发现来自初始调用应用程序的用户名凭据不会被路由服务传递,因此我实现了一个自定义 IEndpointBehavior 来将正确的凭据添加到路由服务调用到外部客户端。

客户端应用程序:

路由服务(服务端点):

路由服务(客户端端点):

假设我没有遗漏一些明显的东西,这一切都应该正常工作,并继续以愉快的方式通过 https 将信息从客户端到路由器再到外部服务并返回。(大假设)

相反,我看到了以下异常和堆栈跟踪:

看到这一点,我进一步研究了它,并通过 Fiddler 传输了所有内容以查看发生了什么。

我的客户端应用程序通过 https 调用我的 IIS 托管路由服务,然后等待。IIS 托管路由服务调用外部服务。这就是事情变得奇怪的地方。有一个 https 200,显示在肥皂信封中返回了一个新的“实体”,另一个 https 200 也从服务返回了另一个新的“实体”,然后我从客户端应用程序的调用几乎得到了 504 网关超时第二个请求从外部服务返回的确切时间。

这个设置给了我一个新的例外:

我尝试按照异常建议延长超时时间,但这不起作用,因为它在一两秒内失败,而不是几分钟。因此,在互联网上搜索此问题的示例和其他解决方案之后,此时我还没有找到任何东西来回答为什么会失败,可能存在哪些潜在问题,或者任何试图完成相同任务的人事物。

我希望您,社区,能够找到我还没有找到的东西,已经自己解决了这个问题并愿意分享解决方案,或者可以轻松地发现我的绑定或设置的问题。

0 投票
1 回答
4268 浏览

wcf-binding - 使用 .Net4 WCF 路由器服务的动态路由

我正在寻找具有 .net 4 wcf 服务的动态路由示例。请帮我。

0 投票
1 回答
439 浏览

wif - WCF 路由 + WIF

新的路由服务如何处理安全问题?根据http://blogs.microsoft.co.il/blogs/applisec/archive/2011/12/12/wcf-routing-and-message-security.aspx,未选择默认 Windows 安全性时可能会很困难(通常是一个简单的用户名/密码场景)。

wcf 路由能否真正支持路由器通过 HTTP 接收 WS-Security 安全消息并通过 HTTP 将其转发到另一台服务器而不打开安全令牌的场景?

我的情况如下:

  1. 服务器(依赖方)、具有用户名/密码身份验证的自定义 STS 和客户端。我们使用 ws2007FederationHttpBinding 和消息安全。
  2. 现在我们设置 wcf 路由,它适用于 basicHttp 或 wsHttp。
  3. 然后我们使用 WIF,我们可以实例化代理,STS 生成声明,但它在第一次服务调用时失败。似乎路由器正在等待证书定义(包括在内,否则我们会收到错误),然后似乎需要 Cardspace UI(实际上我们正在使用用户名/密码)。

如果是这样,你有一个例子吗?

谢谢。