从类库调用 WCF 服务:App.Config 与 Web.Config?
Posted
技术标签:
【中文标题】从类库调用 WCF 服务:App.Config 与 Web.Config?【英文标题】:Calling WCF service from class library: App.Config vs Web.Config? 【发布时间】:2013-03-02 19:57:30 【问题描述】:从现有的WebApplication
我用来调用 WCF 服务。这些服务的代理是使用添加服务参考菜单创建的。从而在本项目中生成>> Web.config。
我在解决方案中添加了另一个class library project
。该项目还添加了对服务的引用。从而在本项目中生成>> App.Config文件。
我了解,在 N 层应用程序中,我们应该有到服务的公共网关。只是出于好奇,我想知道-
对于源自 WebApp 的 WCF 调用,传播到将引用哪个配置文件 (App/Web) 的类库 用于定位客户端端点配置?
【问题讨论】:
如果是使用类库的 Web 应用程序,则 Web 代码和库代码都将使用 web.config 文件。但是,您可以引用要包含在 web.config 中的其他配置文件。我确实知道我的头顶是怎么回事 【参考方案1】:web.config
文件将用于定位服务。
原因是因为在这种情况下,app域属于web应用,而不是类库,并且这个app域的默认配置文件是web.config
。
【讨论】:
我要补充一点,这适用于任何可执行文件(Web 应用程序、Windows 应用程序、控制台应用程序等)。默认的 .config 是可执行应用程序的本地文件。所有引用的库都将使用父应用程序 .config。需要添加本地 .config。以下是关于继承的一些重要考虑的参考:weblogs.asp.net/jgalloway/archive/2012/01/17/…【参考方案2】:@musefan 是正确的。使用的是 web.config。
如果您愿意,您可以将一些配置部分拆分为单独的文件,并从主 web.config 中引用它们。您可能希望这样做,以便可以在一个地方维护 WCF 客户端和服务器配置,以确保它们保持一致。
例如,如果你想分离出<client>
部分,你可以这样做:
<client configSource="client.xml" />
其中 client.xml 是一个包含相关客户端配置信息的文件。
这篇博文更详细地告诉您如何操作。
http://blog.andreloker.de/post/2008/06/keep-your-config-clean-with-external-config-files.aspx
【讨论】:
以上是关于从类库调用 WCF 服务:App.Config 与 Web.Config?的主要内容,如果未能解决你的问题,请参考以下文章