【问题标题】:virtual directories with different .net frameworks具有不同 .net 框架的虚拟目录
【发布时间】:2008-11-12 16:09:47
【问题描述】:

是否可以在 IIS 中的同一网站下有两个虚拟目录,但虚拟目录使用不同版本的 .net 框架?

例如,在默认网站下,我可以有一个针对 2.0 框架的虚拟目录和第二个针对 1.1 框架的虚拟目录吗?

这是为 IIS 6 准备的,谢谢​​!

【问题讨论】:

    标签: iis .net-2.0 frameworks .net-1.1


    【解决方案1】:

    您并不是说您使用的是哪个版本的 IIS,但对于 6.0 及更高版本,只需将它们分配给不同的应用程序池,并将池设置为使用正确版本的 .Net。

    【讨论】:

    • 请注意,这意味着您不能再在 XP 中使用 IIS 进行测试。
    • 真的没有。应用程序池是 6.0 的新增功能,新的流程模型也是如此。在 XP 中,每个应用程序都在自己的进程中运行(如果您这样配置 - 隔离级别)。您可以使用属性部分中的选项卡设置框架版本。
    • 我编辑了问题以指定这是针对 IIS 6 的。谢谢!
    • 这是否也适用于 .NET 2.0 网站下的虚拟目录中的 .NET 4.0 应用程序? (也是 IIS 6)
    • @Valien,.Net 版本,由虚拟导演使用,可以为每个虚拟目录独立设置。正如答案 - 您需要为每个版本的 .Net 单独的 AppPool。因此,如果您有 2 个虚拟目录 - 一个使用 2.0,一个使用 4.0,您将需要 2 个 AppPools,并将每个虚拟目录设置为不同的。
    【解决方案2】:

    您必须为这两个虚拟目录创建一个“应用程序”,然后使用网站属性下的 ASP.NET 选项卡分配它们的 ASP.NET 版本。

    另外,正如@sunny 所提到的,您需要有两个不同的应用程序池,并且每个虚拟目录都必须指向不同的应用程序池。因为不同版本的 ASP.NET 不能在同一个应用程序池中运行。

    【讨论】:

      【解决方案3】:

      这取决于您是否将它们标记为“应用程序”。应用程序虚拟目录可以使用不同的框架。确保将它们关联到不同的应用程序池。切勿在一个应用程序池中混合两个 .NET 框架版本。

      一个重要提示:如果您将虚拟目录创建为应用程序,则不会共享会话状态和其他与应用程序相关的对象。此外,Server.MapPath("~") 和其他与 ServerURL 相关的方法的属性将指向虚拟目录的物理目录,而不是指向主根目录。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多