问题标签 [channelfactory]

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

wpf - WCF/WPF 最佳实践 - WCF ChannelFactory 和 PRISM

我是 PRISM 框架的新手,所以我的问题可能有点离题。

我已经建立了一个由两个项目组成的 WCF 服务。

  1. WCF .svc 和 Web.config 项目只包含服务定义。
  2. 定义 WCF 服务接口和服务类型的服务类型项目。

在客户端,我有点担心我应该如何为服务实现一个单一的、长期存在的代理。

我的方法是使用 为服务创建一个通道,并将其ChannelFactory<T>注册到我的模块中的 Unity 容器中。这意味着我的 Module 必须引用 Service Type 项目才能获取服务接口(这是正确的方法吗?)。

问题是“当我们需要提供身份验证以创建通道以及如何处理断开/重新连接时,管理此通道的最佳方法是什么。”

0 投票
1 回答
8552 浏览

wcf - ChannelFactory:创建和处理

我编写了一个由 WPF 客户端使用的 Sdk,负责调用 WCF 服务和缓存。这些 WCF 服务是使用 ChannelFactory 调用的,所以我没有服务引用。为此,我创建了一个处理打开和关闭 ChannelFactory 和 ClientChannel 的工厂,如下所示:

我打电话的每个请求都像:

虽然这可行,但速度很慢,因为对于每个请求,客户端通道和工厂都会打开和关闭。如果我保持打开状态,它会非常快。但我想知道最佳做法是什么?我应该保持开放吗?或不?如何以正确的方式处理这个问题?

0 投票
1 回答
1084 浏览

wcf - 创建 WCF 通道后更改客户端凭据

我们构建的系统允许用户在创建 WCF 通道后更改其密码 - 有没有一种方法可以更改发送到服务器的凭据而无需重新创建通道?

先感谢您。

0 投票
2 回答
1617 浏览

wcf - 通道处于故障状态时 WCF 操作调用的重试机制

我试图找到一种优雅的方式来在 WCF 通道处于故障状态时重试操作。我尝试使用 Policy Injection AB 重新连接并在第一次调用时发生故障状态异常时重试操作,但 PolicyInjection.Wrap 方法似乎不喜欢包装透明代理对象(从 ChannelFactory.CreateChannel 返回的代理)。

是否有任何其他机制我可以尝试或者我如何尝试让 PIAB 解决方案正常工作 - 任何链接、示例等将不胜感激。

这是我使用的失败的代码:
var channelFactory = new ChannelFactory(endpointConfigurationName);
var proxy = channelFactory.CreateChannel(...);
proxy = PolicyInjection.Wrap<IService>(proxy);

谢谢你。

0 投票
1 回答
4699 浏览

wcf - 如何向 WCF ChannelFactory 添加证书?

我需要一个简单的 WCF 示例代码或教程或显示如何将证书添加到 ChannelFactory 的步骤的链接?

0 投票
1 回答
1584 浏览

c# - 如何在没有 svcutil.exe 的情况下使用 WCF 服务?

我发现了两种在没有以下帮助的情况下使用 WCF 服务的方法svcutil.exe

  • ClientBase<IService>
  • ChannelFactory<IService>

我知道ClientBase可能使用ChannelFactory. 但我说的是在写作之间进行选择:

或者

我应该选择哪一个?

0 投票
1 回答
1397 浏览

wcf - 手动 WCF 和 ChannelFactory

我刚刚开始使用 WCF,并且正在使用 Miguel A. Castro 发布的一篇较早的文章,称为WCF the Manual Way。在文章中他提到使用 ChannelFactory 创建服务代理。在文章中,他展示了创建代理的代码:

当我尝试将该代码与 web.config 中配置的端点一起使用时,我不断收到有关此端点为空的错误。Obvioulsy 如果我在 ChannelFactory 构造函数上指定端点的名称,它会起作用,但这似乎不是可重用性的最佳选择。但如果我这样做,它似乎也有效:

这只是 ChannelFactory 类工作方式的改变(因为这篇文章已经快 2 年了)?创建 WCF 服务代理和可重用性的“最佳实践”是什么?

0 投票
1 回答
630 浏览

silverlight - Silverlight 中生成的 WCF 服务客户端是否重用 ChannelFactory?

当从 silverlight 调用 WCF 服务时应该使用生成的 WCF 服务客户端(例如 MyServiceClient),还是使用 ChannelFactory(例如 ChannelFactory.Create())?

其他问题已经问过这个问题:WCF/Silverlight:为什么使用 ChannelFactory 而不是 Client?

但是,响应只是说最好重新使用 ChannelFactory。但如果直接这样做,您将失去生成的 WCF 服务客户端的所有其他功能(异步事件等)

有没有办法让生成的 WCF 服务客户端重新使用 ChannelFactory 本身?

0 投票
1 回答
1721 浏览

wcf - 模拟通用 WCF ClientChannelWrapper 异步调用

我最近开发了一个 Silverlight 应用程序,它使用Mark J MillersClientChannelWrapper<T>与 WCF 服务层进行通信(有效地杀死服务引用和包装IClientChannelClientChannelFactory)。这是界面:

Wrapper 基本上采用通用异步服务接口(可能由 slsvcutil 生成或在 WCF 之后手工制作ServiceContract)并包装调用以确保在通道故障的情况下创建新通道。典型用法如下所示:

一切正常,但现在我想对使用ClientChannelWrapper. 我使用 Moq 设置了一个简单的单元测试:

我得到一个 NotSupportedException:

不支持的表达式:p => p.BeginGetCurrentUser(IsAny(), null)。

我对 Moq 很陌生,但我想ClientChannelWrapper使用通用服务接口存在一些问题。试图把我的头脑围绕这个问题已经有一段时间了,也许有人有一个想法。谢谢你。

0 投票
0 回答
1125 浏览

wcf - MonoTouch WCF REST 错误创建通道

我正在尝试通过 MonoTouch 访问 WCF REST 服务。我无法使用 ChannelFactory,因为在 MonoTouch 中无法生成动态代码,并且因为我正在访问 RESTful 服务,所以我也无法使用 svcutil 来构建客户端类。

这让我不得不手动构建客户端类。我已经走了很远但遇到了一个问题,这是我的代理类代码:

接口 IAuthenticationService 使用属性来指定端点 Uri:

这是我使用代理类的方式:

(由于某种原因,WebHttpBehavior 没有实现 IEndpointBehavior,所以我创建了自己的类,它继承自 WebHttpBehavior 并实现了 IEndpointBehavior)。

我收到的例外是:

System.InvalidOperationException:在传输上启用手动寻址时,必须为每个请求消息设置其目标地址。

任何人都可以帮忙吗?

干杯,安东尼。