我有一个由ASP.NET web应用程序和Windows组成的企业应用程序。这有许多“可插接的”连接器进入使用WCF的其他系统(作为客户端和/或服务器)。在启动过程中,可插入连接器必须同时加载到web应用程序和服务中。
如果我使用标准的WCF配置机制,我需要将所有连接器的WCF配置合并在一起,然后将其放入web.config和service.exe.config中。
理想情况下,我希望将每个连接器的WCF配置作为该连接器自身配置文件的一部分,因此在启动时加载每个连接器时,将执行该连接器的WCF配置。这似乎是一种更加模块化/面向对象的方法,因为一个连接器的所有配置都集中在一个地方,并且与其他配置分离。
我意识到我可能通过使用完全编程配置来实现这一点,但是我真正想要做的是能够在运行时通过将配置部分作为文本或DOM树传递给配置部分来配置WCF。
有办法做到这一点吗?我目前使用的是.Net 3.5,但对4.5也很感兴趣,因为我们很快就会讨论这个问题。
提前感谢
发布于 2014-05-27 21:38:55
我看不到允许访问基本ServiceHost从外部源加载配置配置部分的选项。
而且,我不可能看到您可以在运行时更新或替换系统配置(另外,在web应用程序中更改配置是没有意义的)。
最好的选择是构建一个类,该类表示不同的配置选项,例如,哪个绑定和哪个安全性等等。然后,可以使用序列化过程将该类保存到xml文件中。当连接器加载时,您将获取相关的xml并反序列化它,并使用纯代码构建服务主机/客户端通道,这应该相当容易。
见自定义服务主机。
对于客户端,只需使用ChannelFactory即可。
最糟糕的选择是使用来自OutOfTheBox的System.ServiceModel.dll元素类,并自己实现WCF库的一半。
https://stackoverflow.com/questions/23559996
复制相似问题