问题标签 [wcffacility]

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

wcf - 使用 Castle Windsor WcfFacility 创建客户端端点

我创建了三个程序集。一个网站、一个 WCF 服务和一个包含服务实现的接口的合同程序集。我想使用 Castle Windsor 在客户端(网站)上为我创建服务,这样我就不必在网站的 web.config 中为我希望使用的每个服务创建一个端点。

我想查看合同程序集并获取命名空间中的所有服务接口。现在,在向容器注册组件时,对于每项服务,我都有类似以下内容。

在我的 web.config 中,我有设置代码。

我最终得到了多个看起来几乎完全相同的服务端点,当我们部署到客户端机器上时,他们必须设置每个端点的地址,即使每个端点的基本 url 都是相同的。

我想在我的 web.config 中有一个通过代码获取的基本 url,然后使用合约程序集上的反射将服务注册到容器中。我确实需要上述配置文件中的专用端点行为。

我从哪里开始?WcfFacility 看起来很棒,但 doco 有点缺乏......

0 投票
1 回答
1993 浏览

wcf - 向 Castle Windsor 注册 wcf 服务

我有一个非常简单的服务,在不使用 Castle 时可以正常工作(这表明其他代码是正确的)。我将我的 svc 文件更改为以下内容:

并使用 xml 注册服务,如下所示:

但我收到以下错误:

知道为什么它没有注册吗??

- - 更新 - -

我在温莎配置中有这个:

并且 ReportingWebService 在另一个程序集中被隐含。

0 投票
0 回答
618 浏览

wcf - 使用 WCF 工具添加操作行为

我第一次使用 WCF 工具在控制台应用程序(便于调试)和 IIS(用于生产)中托管几个服务。这些服务使用net.msmq端点。

这就是我在控制台应用程序中托管服务的方式(简化):

这是它的注册方式:

我想做的是将以下行为添加到所有操作中:

这是我尝试过的:

但这会导致异常:

有任何想法吗?

0 投票
1 回答
294 浏览

wcf - 使用 IOC 容器的 WCF 属性注入

使用 ASP.NET MVC,我可以像这样替换 FilterProvider

使用我自己的自定义提供程序。它没有让我能够使用工厂模式来创建控制器过滤器属性,但我确实能够使用属性注入来设置属性可能需要使用容器的依赖项。

是否可以使用 WCF 做类似的事情,以便我可以将依赖项(属性注入很好)注入到我的用户定义的类中,这些类派生自我在服务方法上使用的属性(服务是使用 IOC 创建的)?

我正在使用 CastleWindsors WcfFacility,但通用解决方案(适用于任何容器)可能是一个更好的答案。

0 投票
1 回答
1886 浏览

c# - 城堡 WCF 设施 | Windows 服务托管

我试图在我的 WCF 项目中使用 Castle WCF 集成工具,但在路上迷路了。你能帮帮我吗?

所以,情况如下:

我有一个 WCF 服务库,它通过 TCP 托管在 Windows 服务中。以下是我的 WCF 服务库中的内容:Service Impl:

配置:

容器配置这是在 WCF 项目内部,如果我将所有内容都注册到城堡(我不确定应该在哪里注册 wcf 设施,是否应该从 WCF 服务或托管 WCF 服务的 Windows 服务注册)。

以下是我的 Windows 服务中的内容:

我的 Windows 服务配置(app.config)与我的 WCF 服务相同,逐行逐行。

现在的问题是,我如何将这一切与 WCF 设施连接在一起?我见过很多使用 http 和 global.asax 的例子,但没有一个用于 Windows 服务的例子。你能帮忙吗?即使是适当的链接也会有所帮助。

谢谢,-迈克

0 投票
1 回答
255 浏览

c# - 具有 PerWebRequest 生活方式的对象中 WcfService 代理依赖项的发布策略

如果我有一个PerWebRequest具有 PerThread 生活方式的 wcf 代理依赖项的对象,容器会

  • a) 在容器自动释放父对象后使用相同的代理实例?
  • b) PerWebRequest 对象的释放是否会导致代理每次都被释放?

如果a),那么我应该明确释放服务以避免泄漏,或者如果b),如果这是注入它的唯一位置,那么使用PerThread作为代理是否有任何真正的好处?

0 投票
1 回答
2898 浏览

c# - 将 PerWcfSession 生活方式与 Castle WCF 集成工具一起使用

以下代码使用 Castle Windsor 3.0 的WCF 集成工具来注册 WCF 自托管服务:

尝试使用 WcfTestClient.exe 调用 SayHello 方法会导致以下错误:

无法获得组件 SelfHost.PerSession 的范围。这很可能是自定义 IScopeAccessor 中的错误,或者您正在尝试访问范围之外的范围组件(例如 Web 请求之外的每个 Web 请求组件等)

使用 PerWcfSession 组件的正确方法是什么?

0 投票
1 回答
248 浏览

castle-windsor - 温莎 WCF 设施和类型工厂

我的问题与温莎提供的 WCF 和类型化工厂设施有关。我对 IoC 容器概念,尤其是设施非常陌生,但在评估了我们不久前写的一个项目后开始研究它。该程序是 n 层的并且不是非常可单元测试的,因为依赖注入并不是到处都实现的。问题在于,由于它是 n 层的,因此进行适当的 DI 最终会使顶层负责创建一个实例,该实例将被使用 5 层以下;所以我转向国际奥委会。

但是,在阅读了许多 SO 文章和其他网站之后,我现在遇到了几个问题。最初的主要问题之一是将类与 WCF 服务的物理实现分离,我这样做如下:

但是,我发现多次提到您不应该使用IoC.Resolve<>(),而应该使用工厂和 WCF 设施来消除对您的依赖,IoC container并且它是一种服务定位器模式,有些人认为它是一种反模式。

我的问题是:上面的三行代码几乎解决了我所有的问题,但是为了遵循正确的模式,我必须创建一个 WCF 工具,一个类型化工厂(它将处理为我提供使用此代码的类的实例) 和工厂的新界面,这感觉就像是为了取悦模式而过度设计并在代码中添加不必要的复杂性。

问题1:我在这里缺少一些基本的东西吗?

问题 2:从代码中可以看出,我正在为 Web 服务调用一个非空的构造函数。如果我实现 WCF 设施,这仍然会那么简单吗?

问题 3:由于我发现 Windsor wiki 上的解释非常简短而且没有真正用处,您能否指出一个关于使用 WCF 设施的体面教程?

谢谢

0 投票
1 回答
1186 浏览

nhibernate - 在 Wcf 服务中使用 Windsor NHibernateFacility 和自定义服务行为来创建事务而不是事务属性

我正在尝试第一次在 Wcf 服务中使用 Windsor NHibernate Facility 并替换当前手动注册 NHibernate,以便可以在所有服务中使用一致的方法。

目前的工作方法

以前我一直在手动注册 NHibernate 组件。

然后,我使用自定义服务行为为每个操作创建和完成事务范围。

NHibernate 设施的集成

我已经下载了0.3.1.2001 工件并使用下面的资源尝试插入该工具并移除任何手动连接到 NHibernate 的线路。但是我不想用TransactionalandTransaction属性来装饰服务和方法。以下是我目前的线材。

每当我调用服务端点之一时,服务都会失败,并出现以下异常:

尝试为解析类型“Juice.iCheque.eMoneySystem.Settlement.ISettlementService”实例化模型“NHibernate.ISession”时,上下文中没有事务。如果您已验证您的调用堆栈包含具有 [Transaction] 属性的方法,那么还要确保您已注册 AutoTx Facility。

问题是我如何在NHibernateFacility我当前的实现中使用而不使用Transaction属性。

资源

http://richarddingwall.name/2010/08/17/one-nhibernate-session-per-wcf-operation-the-easy-way/

https://github.com/haf/Castle.Facilities.NHibernate/wiki/NHibernate-Facility---快速入门

0 投票
1 回答
2793 浏览

wcf - Castle WCF 集成设施

我正在尝试在我的项目中使用 Castle WCF 集成工具。我按照城堡官方网站http://docs.castleproject.org/Windsor.WCF-Facility-Registration.ashx的说明进行操作, 但我无法让它工作。这是我的代码和配置。

正如您在上面看到的,我尝试以 3 种不同的方式注册我的服务。需要明确的是,我一次只运行这 3 个注册码中的一个,其他的都被注释掉了。对于从 castle.config 获取配置的是我的 castle.config :

最后是我的 web.config

非常感谢您的帮助...