Windows服务和IIS站点可以共享相同的dll吗?
答
是的,基本上是在GAC中的dll共享
答
配置文件,绝对不是。
DLLs,当然你可以编写一次DLL,并让它们都调用它 - 我假设你通过IIS网站的意思是某种类似ASP.NET的服务器端代码 - 但我通常将DLL复制到他们每个人都希望找到他们的依赖,而不是搞乱PATH等。
答
你是什么意思分享?他们当然可以引用相同的程序集。如果这些程序集在GAC中,则可以。通常情况下,如果您没有将内容放入GAC中,则该DLL将位于每个项目的bin文件夹中。如果您不在GAC中,通常情况下,即使文件有多个副本,您的部署或安装项目也会将其放在适当的位置。重复无关紧要,特别是因为代码是相同的。
你不想尝试共享配置文件。该网站将默认为web.config,并且您的服务将默认为[您的服务名称] .exe.config。是的,你可以从技术上为这个或那个动态地加载配置,但它们很可能会有所不同。在web.config中将有各种额外的ASP.NET配置,该服务将不需要。
如果你确实想分享一些配置信息,我会推荐保留2个原始配置,并让他们引用第三个配置,这会让你有共同的配置设置。在每个应用程序中,您将从他们自己的配置文件中查找此配置位置,并动态加载第三个配置文件。
应用程序可以读取远程配置文件(例如,阅读Windows服务配置的Web应用程序),尽管这通常是可怕的,因为“榨取”应用程序需要知道其他应用程序的安装位置。 – StuartLC 2010-07-16 12:25:40