我一直在使用已经使用IIS部署到各种计算机的大约12个WCF服务。所有绑定/配置都保存在通常的“web.config”文件中,该文件是为了使服务更易于配置而保持服务代码本身更加干净。但是,我最近的任务是创建一个Windows服务来托管这些WCF服务。我有一个问题是,我是否只是将web.config文件中的所有设置复制到Windows服务的App.config文件中?或者我是否需要重新配置所有端点/绑定/等。在App.config文件中使用不同的格式?我以前从未创建过Windows服务,而且在创建Windows服务主机后,我不能100%确定安装所需的内容。提前谢谢。
答案 0 :(得分:1)
web.config中的WCF配置元素应直接转换为app.config。我过去曾剪切并粘贴过像这样的web.config元素。唯一需要注意的是web.config和app.config都没有像某些元素那样重复,所以如果你要合并来自多个web.config文件的配置数据,你必须确保你不重复部分应该只存在一次。
答案 1 :(得分:1)
我一直认为.NET配置模型不适合WCF服务配置。
有一种方法可以让WCF从其他位置检索其配置。我喜欢设置它以便WCF服务从ServiceName.config
而不是web.config
或AppName.exe.config
检索其配置信息。这解决了Harper Shelby提到的重复元素的问题。
Here's a full explanation and some code.
使用该自定义服务主机,将WCF服务从IIS移动到自托管模型非常简单。