问题标签 [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.
wpf - WCF/WPF 最佳实践 - WCF ChannelFactory 和 PRISM
我是 PRISM 框架的新手,所以我的问题可能有点离题。
我已经建立了一个由两个项目组成的 WCF 服务。
- WCF .svc 和 Web.config 项目只包含服务定义。
- 定义 WCF 服务接口和服务类型的服务类型项目。
在客户端,我有点担心我应该如何为服务实现一个单一的、长期存在的代理。
我的方法是使用 为服务创建一个通道,并将其ChannelFactory<T>
注册到我的模块中的 Unity 容器中。这意味着我的 Module 必须引用 Service Type 项目才能获取服务接口(这是正确的方法吗?)。
问题是“当我们需要提供身份验证以创建通道以及如何处理断开/重新连接时,管理此通道的最佳方法是什么。”
wcf - ChannelFactory:创建和处理
我编写了一个由 WPF 客户端使用的 Sdk,负责调用 WCF 服务和缓存。这些 WCF 服务是使用 ChannelFactory 调用的,所以我没有服务引用。为此,我创建了一个处理打开和关闭 ChannelFactory 和 ClientChannel 的工厂,如下所示:
我打电话的每个请求都像:
虽然这可行,但速度很慢,因为对于每个请求,客户端通道和工厂都会打开和关闭。如果我保持打开状态,它会非常快。但我想知道最佳做法是什么?我应该保持开放吗?或不?如何以正确的方式处理这个问题?
wcf - 创建 WCF 通道后更改客户端凭据
我们构建的系统允许用户在创建 WCF 通道后更改其密码 - 有没有一种方法可以更改发送到服务器的凭据而无需重新创建通道?
先感谢您。
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);
谢谢你。
wcf - 如何向 WCF ChannelFactory 添加证书?
我需要一个简单的 WCF 示例代码或教程或显示如何将证书添加到 ChannelFactory 的步骤的链接?
c# - 如何在没有 svcutil.exe 的情况下使用 WCF 服务?
我发现了两种在没有以下帮助的情况下使用 WCF 服务的方法svcutil.exe
:
ClientBase<IService>
ChannelFactory<IService>
我知道ClientBase
可能使用ChannelFactory
. 但我说的是在写作之间进行选择:
或者
我应该选择哪一个?
wcf - 手动 WCF 和 ChannelFactory
我刚刚开始使用 WCF,并且正在使用 Miguel A. Castro 发布的一篇较早的文章,称为WCF the Manual Way。在文章中他提到使用 ChannelFactory 创建服务代理。在文章中,他展示了创建代理的代码:
当我尝试将该代码与 web.config 中配置的端点一起使用时,我不断收到有关此端点为空的错误。Obvioulsy 如果我在 ChannelFactory 构造函数上指定端点的名称,它会起作用,但这似乎不是可重用性的最佳选择。但如果我这样做,它似乎也有效:
这只是 ChannelFactory 类工作方式的改变(因为这篇文章已经快 2 年了)?创建 WCF 服务代理和可重用性的“最佳实践”是什么?
silverlight - Silverlight 中生成的 WCF 服务客户端是否重用 ChannelFactory?
当从 silverlight 调用 WCF 服务时应该使用生成的 WCF 服务客户端(例如 MyServiceClient),还是使用 ChannelFactory(例如 ChannelFactory.Create())?
其他问题已经问过这个问题:WCF/Silverlight:为什么使用 ChannelFactory 而不是 Client?
但是,响应只是说最好重新使用 ChannelFactory。但如果直接这样做,您将失去生成的 WCF 服务客户端的所有其他功能(异步事件等)
有没有办法让生成的 WCF 服务客户端重新使用 ChannelFactory 本身?
wcf - 模拟通用 WCF ClientChannelWrapper 异步调用
我最近开发了一个 Silverlight 应用程序,它使用Mark J MillersClientChannelWrapper<T>
与 WCF 服务层进行通信(有效地杀死服务引用和包装IClientChannel
和ClientChannelFactory
)。这是界面:
Wrapper 基本上采用通用异步服务接口(可能由 slsvcutil 生成或在 WCF 之后手工制作ServiceContract
)并包装调用以确保在通道故障的情况下创建新通道。典型用法如下所示:
一切正常,但现在我想对使用ClientChannelWrapper
. 我使用 Moq 设置了一个简单的单元测试:
我得到一个 NotSupportedException:
不支持的表达式:p => p.BeginGetCurrentUser(IsAny(), null)。
我对 Moq 很陌生,但我想ClientChannelWrapper
使用通用服务接口存在一些问题。试图把我的头脑围绕这个问题已经有一段时间了,也许有人有一个想法。谢谢你。
wcf - MonoTouch WCF REST 错误创建通道
我正在尝试通过 MonoTouch 访问 WCF REST 服务。我无法使用 ChannelFactory,因为在 MonoTouch 中无法生成动态代码,并且因为我正在访问 RESTful 服务,所以我也无法使用 svcutil 来构建客户端类。
这让我不得不手动构建客户端类。我已经走了很远但遇到了一个问题,这是我的代理类代码:
接口 IAuthenticationService 使用属性来指定端点 Uri:
这是我使用代理类的方式:
(由于某种原因,WebHttpBehavior 没有实现 IEndpointBehavior,所以我创建了自己的类,它继承自 WebHttpBehavior 并实现了 IEndpointBehavior)。
我收到的例外是:
System.InvalidOperationException:在传输上启用手动寻址时,必须为每个请求消息设置其目标地址。
任何人都可以帮忙吗?
干杯,安东尼。