【问题标题】:Usage of app.config in Host app and app.config in WCF library?主机应用程序中的 app.config 和 WCF 库中的 app.config 的用法?
【发布时间】:2015-11-17 12:28:42
【问题描述】:

首先,我对 WCF 还很陌生。我已经完成了一些项目,但它们要么托管在 IIS 中(因此只涉及 WCF 库而没有任何宿主应用程序),或者 WCF 类在宿主应用程序项目中声明(因此只有 1 个app.config)。

现在我需要了解一个项目(不是我的)中的代码,其中 WCF 库项目是独立的并且它有自己的 app.config 文件,宿主应用程序项目引用该 WCF 库项目并且也有自己的app.config.

我可以看到那些app.configs 至少在system.serviceModel 部分是不同的。最大的区别在于一个 app.config(宿主应用程序)使用 netTcpBinding 定义服务的端点,而在另一个 app.config(WCF 库)中,使用 basicHttpBinding。这让我很困惑。所以我的问题是在运行使用app.config 的主机应用程序时,它如何确定解析它自己的和引用的WCF 库的app.config?我怀疑 WCF 库项目的 app.config 会被忽略,但不太确定。请给我一些涉及这种情况的有用信息。谢谢!

【问题讨论】:

  • 库的app.config被忽略。

标签: .net web-services wcf


【解决方案1】:

就配置文件而言,WCF 库与 .NET 中的任何其他类库没有什么不同。类库将使用引用它的应用程序的配置文件 - 不使用库项目模板中的 app.config 文件(老实说,我不确定为什么要包含它)。

通常,当您开发 WCF 类库时,您会将 app.config 的相关 <system.serviceModel> 部分复制到将托管服务的应用程序的配置文件(无论是应用程序还是 Web)。

所以为了回答你的问题,服务库的 app.config 文件将被忽略,就像 any 库的配置文件一样。托管服务的应用程序将从其配置文件中获取服务设置。

例子:

假设您有一个名为 MyServiceLibrary 的项目。然后创建一个名为MyServiceHost 的控制台应用程序,它引用MyServiceLibraryMyServiceLibrary 项目将使用 MyServiceHost.exe.config 文件中的 <system.serviceModel> 设置(编译项目时 app.config 文件将变为什么)。 MyServiceLibrary 项目中的 app.config 被忽略。

【讨论】:

  • 事实上我 80% 认为它应该被忽略,但你的回答我认为我有 100%,谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 2012-11-01
  • 2013-11-02
  • 1970-01-01
  • 2013-07-04
  • 2013-06-21
  • 1970-01-01
相关资源
最近更新 更多