简而言之,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文件的位置?
谢谢!
解决方法
在您提供的最后两个链接中,它们演示了如何在ASP.NET服务应用程序中托管库,但您不必使用该项目模板来托管它.它只是其中一种选择.
您可以在不使用VS项目模板的情况下创建类库的IIS托管实现,但是您需要手动添加.svc文件和Web.config.我这样做了好几次:
>创建一个文件夹(我通常把它放在inetpub的wwwroot文件夹中,但你可以把它放在任何你想要的地方).
>在步骤1中创建的文件夹中创建bin文件夹,并将WCF服务库和任何其他必需的程序集放入其中.
>在步骤1中创建的文件夹中添加带有相应标记的.svc文件.
>在步骤1中创建的文件夹中添加具有相应服务模型配置的Web.config.
>在IIS中创建指向您创建的文件夹的应用程序.
现在您有一个IIS托管的服务实例.然后,您可以为Windows服务托管实例使用WCF服务库的另一个副本.