感谢Stack Overflow和其他一些网站,我理解WCF LIbrary和WCF服务应用程序模板之间的区别。
简而言之,Library是一个DLL,允许多种类型的托管。它没有.svc文件。虽然服务应用程序模板是使用.svc文件专门使用IIS创建的。
我读到WCF服务库是最好的方式,因为它是最灵活的。但除了使用WCF服务应用程序模板之外,我从未看到有关如何执行此操作的说明。
难道从WCF服务库转到IIS从头开始托管吗?我有两本关于WCF的书,我读了很多文章,但没有一篇介绍如何仅使用WCF服务库和无WCF服务应用程序创建一个svc文件。为什么呢?
Nigel Shaw还在以下链接中提到使用“库”选项存在限制。 What is the purpose of WCF Service Library?
基本上我想要做的是在IIS和Windows服务上托管WCF服务。因此,似乎组合方式是最好的方式。不过,我试图了解为什么没有更多关于使用WCF服务库的说明。
好的,我确实找到了几篇似乎使用ASP.NET Web应用程序的文章,并告诉您如何为svc文件创建文本文件。
但我仍然不明白为什么仍然需要ASP.NET应用程序?如果我添加一个svc文件,它是否放在wwwroot目录中(这似乎是WCF服务应用程序放置.svc文件的位置?
谢谢!
答案 0 :(得分:8)
必须托管WCF服务库才能使用 - 您可以在IIS,Windows服务或某些自托管选项(如控制台应用程序,WinForm,WPF等)中托管它。
在您提供的最后两个链接中,他们演示了如何在ASP.NET服务应用程序中托管库,但您没有 使用该项目模板来托管它。它只是其中一种选择。
您可以在不使用VS项目模板的情况下创建类库的IIS托管实现,但您需要手动添加.svc文件和Web.config。我已多次这样做了:
wwwroot
的{{1}}文件夹中,但你可以把它放在任何你想要的地方。 inetpub
文件夹,并将WCF服务库和任何其他必需的程序集放入其中。现在您有一个IIS托管的服务实例。然后,您可以为Windows服务托管实例使用WCF服务库的另一个副本。