我开发了一个ASP.NET Core Web应用程序,我想将其添加到已包含多个桌面工具的Windows Installer程序包中。 Web应用程序是自包含的,当然包含许多文件。出于这个原因,我压缩所有文件,安装程序只会将zip文件放在安装目录中(至少这是我目前的解决方案)。现在,我想指示安装Web应用程序的人解压缩zip文件,然后相应地配置IIS以运行Web应用程序。问题是:
应该将Web应用程序提取到哪个目录?
有两种选择可以立即浮现在脑海中:
C:\的Inetpub \ wwwroot的\ MyWebApp
c:\ Program Files \ MyCompany \ MySoftwarePackage \ MyWebApp
这个选择有什么建议吗?
我不确定是否有特殊考虑因素 关于ASP.NET Core和仅IIS的事实 充当反向代理。
答案 0 :(得分:1)
这注定会被视为自以为是,因为坦率地说,没有正确的答案。 IIS可以从任何地方运行Web应用程序;没关系。它必须只具有访问目录的权限,默认情况下使用inetpub
,因为IIS基本上拥有该目录,但必须为任何其他位置添加。但是,创建一个站点并将其链接到该目录也将添加必要的权限,因此无论如何它都非常无缝。长期和短期选择您喜欢的,或者您可以将其完全留给最终用户(这实际上可能是最好的选择)。
答案 1 :(得分:1)
您对C:\inetpub
的直观猜测接近最佳答案。
从需要维护系统安装程序的管理员的角度出发。这位管理员可能是一名多面手,他会在传统的地方寻找东西。
由于默认情况下已在C:\inetpub
安装了IIS网络应用程序,因此这将是大多数管理员希望首先查看的地方。
此外,IIS已被允许从inetpub运行。这种全面的安全限额意味着系统的任何安全应用程序或限制都将专注于保护系统免受从该文件夹运行的应用程序的影响。
不要使用wwwroot,因为IIS的默认配置允许此文件夹可以在任何未绑定的端口80请求中浏览到您的服务器。恶意的人需要知道文件的确切路径,但它仍然是一个漏洞。
c:\inetput\myWebApp\
或c:\inetput\myWebApp-80
或类似的东西是正确的选择。