WCF服务库的目的是什么?

Vit*_*lik 27 .net wcf

WCF服务库的目的是什么?我了解如果您构建一个IIS托管服务,您创建一个Web项目,如果自托管 - 创建一个.exe.

将WCF用作DLL的现实生活场景是什么?

Nig*_*haw 37

虽然将WCF服务作为类库创建可以提供更大的灵活性,但这种灵活性需要付出代价,而且假设更灵活的解决方案始终是首选解决方案,或者灵活性较低的解决方案是幼稚的或者是幼稚的,这是错误的.仅适用于"简单的教学目的".

绝大多数WCF服务作为Web服务托管,永远不会以任何其他方式部署.

以下是使用WCF服务应用程序而不是WCF类库的三个优点:

  1. 如果将Web服务创建为类库,则配置文件将是app.config文件而不是web.config文件.App.config文件本身不支持多个配置文件,并且配置转换web.config文件的方式.如果您想在app.config文件上进行配置转换,则必须使用第三方解决方案,例如Slow Cheetah.

  2. 在发布站点时,如果您使用WCF服务应用程序,则可以充分利用Web Deploy(http://www.iis.net/downloads/microsoft/web-deploy),这是一种强大而灵活的方法.将您的解决方案发布到IIS.

  3. 如果您决定自动构建和部署以便与TFS持续集成,那么您将需要自动发布服务.如果使用WCF服务,则可以配置TFS以运行Web Deploy,它将根据目标构建配置合并您的web.config文件,执行增量发布,在服务器上启用没有管理员权限的发布以及其他好处.如果您使用WCF类库,则必须编写自定义工作流解决方案以合并app.config文件,使用xCopy进行部署,并且通常需要更加艰难的时间来自动部署.

总之,通常情况下,更灵活的解决方案是以丢失特定工具支持为代价的.如果像大多数WCF服务解决方案一样,您的应用程序将始终托管在IIS中,您可以考虑通过使用WCF服务应用程序而不是WCF类库来利用此支持.

  • #1部分不正确.类库可以创建app.config,但不使用它.引用/托管类库的应用程序将拥有自己的web/app.config,它是实际使用的.您可以通过手动生成.svc文件或使用无文件激活来在IIS中托管WCF服务库,在这种情况下,您将使用web.config而不是app.config. (2认同)

mar*_*c_s 20

总是创建一个WCF库作为类库 - 它更容易使用.您可以完全灵活地在IIS中托管您的WCF服务(通过在其中提供虚拟目录和.svc文件),或者您可以编写自己的自托管EXE并从中引用类库中的WCF服务.

将WCF服务直接放入Web项目似乎是一个非常糟糕的主意,可能仅用于非常简单的教学目的 - 只是为了展示如何开始.对于"实时"系统,我永远不会这样做.


Jus*_*ner 10

"WCF服务应用程序"本身是一个依赖于WCF技术的直接Web服务应用程序(类似于ASP.NET Web服务开发).另一方面,"WCF服务库"是一个可以部署为Web的编译组件.服务或Windows服务,甚至作为自定义托管应用程序的一部分.

- 开发WCF服务库并将其作为WCF Web服务托管

  • 好的,如果可以将WCF服务库部署到IIS(感谢您的链接),为什么我要创建一个WCF作为Web项目?听起来像服务库是一个更好的选择.你什么时候用? (12认同)