如果我要在 IIS 中托管 WCF 服务,使用 WCF 服务而不是 WCF 库有啥好处?

Posted

技术标签:

【中文标题】如果我要在 IIS 中托管 WCF 服务,使用 WCF 服务而不是 WCF 库有啥好处?【英文标题】:What is the advantage of using a WCF service instead of a WCF library if I am going to host a WCF service in IIS?如果我要在 IIS 中托管 WCF 服务,使用 WCF 服务而不是 WCF 库有什么好处? 【发布时间】:2016-11-19 03:59:40 【问题描述】:

我了解 WCF 库和 WCF 服务之间的区别。我通常会构建一个 WCF 库并从 WCF 服务中引用它。但如果我要部署到 IIS,为什么不只部署 WCF 库而忘记创建 WCF 服务。我部署哪一个有关系吗?

【问题讨论】:

What is the difference between a WCF Service Application and a WCF Service Library?的可能重复 不,这个问题不是重复的。这个问题询问在 IIS 主机的上下文中使用其中一个是否有任何好处。 IIS 在日志记录和错误处理方面往往更加健壮。服务库为您提供了在 IIS 或其他主机(甚至多个主机)中托管服务以及代码分离的优势。您还可以非常轻松地针对 WCF 服务应用程序运行 WCFTestClient。如果您只打算在 IIS 中托管,那么服务应用程序可能是最好的。在功能上,WCF 服务应用程序和 WCF 服务库是等价的。 我通常会同意托管服务比托管图书馆更好,但我想确定这是否属实。 @user3366675 - 您提出的问题有多个有效答案。这实际上取决于项目/应用程序的要求。如果您只打算在 IIS 中托管它,则服务应用程序非常好。如果您认为您可能以其他方式托管服务(例如,Windows 服务),那么您将希望使用库来避免代码重复。我两种方式都做过,但我通常倾向于使用服务应用程序。 【参考方案1】:

回答我自己的问题:根据我的阅读,部署 wcf 库或 wcf 服务似乎并不重要。如果部署库,请确保将应用配置文件的内容复制到 Web 配置文件。 wcf 服务也提供了一个 svc 文件,但只有在使用 4.0 或更高版本以外的 .net 框架的早期版本时才需要它。如果您部署服务而不是库,则服务的应用程序配置文件将在部署时将内容传递到 Web.config 文件。我很确定这些是唯一的区别。回答我问题的两个人并没有真正花时间阅读和理解这个问题。它被标记为可能重复,显然不是。

【讨论】:

以上是关于如果我要在 IIS 中托管 WCF 服务,使用 WCF 服务而不是 WCF 库有啥好处?的主要内容,如果未能解决你的问题,请参考以下文章

想要将 WCF Web 服务作为 Windows 服务托管,而不是在 IIS 中托管

我们啥时候应该在 IIS 中托管 WCF 服务,啥时候应该在 Windows 服务中托管?

如何从 IIS 托管的 WCF 服务启动进程?

在IIS托管的WCF服务中使用RabbitMQ Queue

选择使用 IIS 进行 WCF 服务托管或使用 Windows 服务进行自托管

如何在 IIS 中正确托管连接到 SQLServer 的 WCF 数据服务?为啥我会收到错误消息?