在 IIS 6.0 中创建虚拟目录时的正确文件夹位置?

Posted

技术标签:

【中文标题】在 IIS 6.0 中创建虚拟目录时的正确文件夹位置?【英文标题】:Proper folder location when creating virtual directories in IIS 6.0? 【发布时间】:2011-01-06 23:50:12 【问题描述】:

使用 Visual Studio .NET 创建新网站时,项目会在默认网站位置创建,例如c:\inetpub\wwwroot\myapp.同样,在使用 Visual Studio Web 部署项目为此类应用程序创建 msi 包时,将使用自定义操作来确定默认网站的文件夹位置以及安装到该位置的文件。

当我查看当前 IIS 安装中的其他虚拟目录时,我看到了以下逻辑路径:

IISHelp:c:\windows\help\iishelp 报告:c:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportManager 报告服务器:c:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer crystalreportviewers12: C:\Program Files\Business Objects\Common\4.0\crystalreportviewers12

我的问题是:即使虚拟目录是在默认网站下创建的,c:\inetpub\wwwroot 真的是正确的使用位置吗?将文件安装到 c:\Program Files\myapp 是否更合适,创建一个虚拟目录,然后将该虚拟目录指向该文件夹(确保已为该文件夹分配了适当的权限,因为它将没有从 c:\inetpub\wwwroot 继承任何权限?

非常欢迎任何指向有关该主题的官方指南的链接。

【问题讨论】:

这更适合 serverfault.com 【参考方案1】:

只要你告诉 IIS 路径真的没关系。我坚持使用 inetpub/wwwroot 目录。这样我就可以将某些安全站点应用到该路径。它还有助于建立各种安全用户,例如 ASP.net 和网络用户帐户。

【讨论】:

我不确定您所说的“这样我可以将某些安全站点应用到该路径”是什么意思。这是一种部署情况,我们只是在谈论文件夹位置,所以如果需要应用任何安全设置,那么肯定应该由安装程序设置这些设置,而不是依赖父文件夹上的任何默认设置? 【参考方案2】:

坚持使用标准 c:\inetpub\wwwroot\ 目录来放置应用程序的主要原因之一是 Windows 已在此目录上正确设置了权限以传播到 Web 应用程序的子目录。我建议坚持使用这个标准,这样您就可以为您的各种站点/应用程序找到一个合乎逻辑的中心点。它真的只是有条理。

现在我不会否认您可以设置额外的根目录,如果您为特定网站等有单独的硬盘驱动器,有时在不同的客户/客户网站上需要这样做。这是一个关于设置根目录的链接.net:

http://msdn.microsoft.com/en-us/library/ha2y9493.aspx

【讨论】:

【参考方案3】:

我倾向于让 vdirs 指向与源代码相同的文件夹,例如 C:\source\mywebapp。这样一来,所有内容都在一个文件夹中,并且源代码管理更加清晰。

另一个原因可能是您的服务器管理员(或您)更喜欢将操作系统内容仅保留在 C: 上,而将数据或内部应用程序保留在 D:(或其他驱动器)上。这可以使其更易于维护,或者可能只是策略。

我建议不要担心你的 vdir 指向哪里,毕竟它们只是“虚拟的”。只需确保您的内容存储在安全且合乎逻辑的位置即可。

【讨论】:

是的,我在开发时将它们指向其他地方。问题是关于部署时的最佳实践。我想我只是习惯于在 Visual Studio(+ 部署项目)中使用所有默认值时在默认位置查看文件,但是看到主要包做不同的事情让我有理由挑战这些假设。在开发 Windows 客户端应用程序时,有很多文件放置指南,但我还没有找到任何处理这个问题的指南。 文件放置对于客户端应用程序来说更为重要,因为它们将被部署到大量通常不受开发人员控制的机器上。网站通常只部署到少数由开发人员(或管理团队)严格控制的机器上。选择一个策略,为您开发的每个网站遵循它,并为那些关注的人记录。

以上是关于在 IIS 6.0 中创建虚拟目录时的正确文件夹位置?的主要内容,如果未能解决你的问题,请参考以下文章

各位大侠,c#中创建目录和文件时的路径问题!!!!!求助!!!!!!!!

使用 InstallAware 部署 Web 服务

使用 C# 的 IIS 6 中虚拟目录的应用程序名称为空

在本机建了IIS服务器,放了网站进去后出现HTTP 错误 403 - 禁止访问,请问是啥原因?

在VMware中创建并安装虚拟机CentOS 64位

怎样设置iis虚拟目录,然后将主目录指向别人的共享文件夹