【问题标题】:In IIS, Can multiple Applications within same Website share some Common libraries?在 IIS 中,同一网站内的多个应用程序可以共享一些公共库吗?
【发布时间】:2016-12-07 08:41:21
【问题描述】:

需要帮助!我是 IIS 管理新手,正在尝试托管我的 ASP.NET Web 应用程序。

我的 Web 应用程序与以下类似:

我希望 ParentChild-OneChild-Two 作为单独的应用程序运行,并且可以以 parent.com、@ 的身份访问分别为987654324@和parent.com/child-two

我选择此项目结构的原因是检查是否可以重用 Child-One 中父级的 Bin 文件夹中存在的一些库和两个孩子

是否可以重复使用 Parent 中 Bin 文件夹中的一些 DLL,在 Child-One 和 Child-Two 中,或者我必须创建 3 个单独的项目?

【问题讨论】:

    标签: c# asp.net iis web-config bin


    【解决方案1】:

    你展示了一个项目,里面有一些文件夹。 bin 文件夹的位置不是很相关。更重要的是只有一个 References 节点(与每个 .NET 项目一样),并且您添加的任何内容都可用于整个项目。您可以通过右键单击 + 添加引用来做到这一点...

    您不需要在子文件夹级别单独的 bin,但如果您坚持将 DLL 放在那里,那么它也可以工作,只要您将 Copy Local 设置为 TrueReferences 节点中(意味着在 Build 时将引用的 DLL 复制到输出文件夹)。

    Visual Studio 本身将始终默认使用根 bin,例如如果您添加 NuGet 包,那么这就是它们的 DLL 所在的位置,您不应该乱用它。

    【讨论】:

    • 谢谢彼得。我正在使用成员资格框架进行身份验证。我希望所有这 3 个项目都有自己的身份验证状态。这可能吗?
    • 不是这种结构,因为你没有3个项目,你只有1个,所以现在它也部署为一个网站或Web应用程序。为此,您需要在主解决方案中创建 3 个项目:Parent、Child1 和 Child2。然后,您可以添加项目 Child1 中指向 Parent\bin 文件夹的引用。然后,每个项目将部署自己的引用 DLL 副本。
    • Each project will then deploy its own copy of the referenced DLLs 。这意味着在这 3 个项目中将存在相同 DLL 的多个副本。不是吗?嗯!能否请您告诉我是否有任何方法可以避免多余的 DLL?
    • '任何避免冗余 DLL 的方法' - 这可能是可能的,但 AFAIK 需要对您的 DLL 进行签名,并且您需要将它们放入网络服务器上的 GAC(通常为 c:\Windows\assembly) .通常麻烦多于其价值;我的建议是不要担心几个重复的 DLL,这些天有这么多 GB 甚至 TB 的存储空间。
    • 是的,有道理。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 2019-12-03
    • 2019-06-13
    • 1970-01-01
    • 2014-01-12
    相关资源
    最近更新 更多