如何在 IIS7 中设置 App_Code 虚拟目录?

如何在 IIS7 中设置 App_Code 虚拟目录?

在 IIS6 中,您不能将 App _Code 目录设置为虚拟目录。

但是,我发现您可以在 App _Code 目录中设置一个虚拟目录,然后 IIS6 会将代码编译到 __code 程序集中。

IIS7 似乎不会这样做,但我想知道在 IIS7 中是否有其他方法可以在多个站点之间共享代码目录。

一个可行的选项是创建到公共源代码目录的连接,但我非常喜欢虚拟目录选项,并且根据定义,代码自动无法通过 FTP 访问。

答案1

推荐吗?可能不会。非法吗?也许吧。可能吗?是的。

您可以在 IIS7 中托管的基于 ASP.Net 文件的网站的 App_Code 目录中使用虚拟目录。

在磁盘上创建空路径

首先,创建一个类似于以下路径的文件结构,其中“MyWebRoot”是您的网站的根目录,“MySharedCode”是您想要的包含共享 *.cs 或 *.vb 源代码文件的虚拟目录的名称。

电子邮件地址:\MyWebRoot\App_Code\MySharedCode

使用虚拟目录掩盖物理路径

接下来,打开 Internet 信息服务 (IIS) 管理器并在服务器的“站点”节点下找到您的站点。

单击站点名称旁边的加号以展开站点。您将看到列出的顶级目录。

右键单击“App_Code”目录并选择“添加虚拟目录...”(见截图)

IIS 虚拟目录对话框截图

在“别名”文本框中输入共享代码虚拟目录的名称。此名称必须与您在 App_Code 目录中创建的空文件夹的名称相匹配。

最后,在“物理路径”文本框中输入共享代码位置的实际路径。

单击“确定”完成虚拟目录的创建。

下次您浏览该站点时,IIS 应该编译位于您的虚拟目录引用的物理路径中的文件。

注意:您可能需要重置 IIS 或“触摸” Web.Config 文件来启动该过程。

开始 > 运行 > iisreset

显然,IIS 优先考虑虚拟目录的内容,但它需要物理路径的存在才能促使其​​进行编译。

答案2

那么,为什么不在共享的 App_Code 中编译所需的代码并将其安装在 GAC 中呢?这就是它的用途,而且比您提议的要安全得多。

相关内容