【问题标题】:Can a windows service and a IIS site share the same dlls?Windows 服务和 IIS 站点可以共享相同的 dll 吗?
【发布时间】:2010-07-16 11:46:55
【问题描述】:

Windows 服务和 IIS 站点可以共享相同的 dll 吗?

也许还有配置(web.config)?

【问题讨论】:

    标签: asp.net iis windows-services


    【解决方案1】:

    配置文件,绝对不是。

    DLL,当然你可以编写一次 DLL 并让它们都调用它——我假设 IIS 站点你的意思是某种服务器端代码,如 ASP.NET——但我通常将 DLL 复制到这些地方他们每个人都希望找到他们的依赖关系,而不是搞乱 PATH 等。

    【讨论】:

    • 应用程序可以读取远程配置文件(例如,Web 应用程序读取 Windows 服务配置),尽管这通常是可怕的,因为“窃取”应用程序需要知道其他应用程序的安装位置。 ..
    【解决方案2】:

    是的,基本上是共享 GAC 中的 dll

    【讨论】:

      【解决方案3】:

      分享是什么意思?他们当然可以引用相同的程序集。如果程序集在 GAC 中,那就没问题了。通常,如果您不将内容放入 GAC,则 DLL 将位于每个项目的 bin 文件夹中。如果您不在 GAC 中,大多数情况下,您的部署或设置项目只会将它们放置在适当的位置,即使该文件有多个副本。重复并不重要,尤其是因为代码是相同的。

      您不想尝试共享配置文件。该网站将默认为 web.config,您的服务将默认为 [您的服务名称].exe.config。是的,您可以从技术上为其中一个动态加载配置,但它们很可能会有所不同。 web.config 中将有各种服务不需要的 ASP.NET 附加配置。

      如果您确实想分享一些配置信息,我建议您保留 2 个原始配置,并让他们参考第三个配置,该配置将为您提供通用配置设置。在每个应用程序中,您都可以从它们自己的配置文件中查找此配置位置,然后动态加载第三个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-16
        • 2011-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多