0

我公司的其他一位开发人员编写了一个 .NET 2.0 网站。他将所有内容……解决方案、项目、源代码……都存储在“inetpub\AppName”(IIS 共享)中。我以前从未见过这样做过。事实上,我有点惊讶网站在浏览器中加载。这样做有什么缺点吗...将您的解决方案存储在 Visual Studio 2010 项目文件夹中,然后将网站发布到 inetpub(安全性、速度等)?另外,为什么这行得通?

4

5 回答 5

2

它之所以有效,是因为该站点将即时编译。从性能的角度来看,这是不好的(因为后期编译),从安全的角度来看也是不好的(您暴露的代码超出了必要的范围)。

来自MSDN

因为 ASP.NET 在第一个用户请求时编译您的网站,所以您可以简单地将应用程序的源代码复制到生产 Web 服务器。但是,ASP.NET 还提供了预编译选项,允许您在部署网站之前对其进行编译,或者在部署之后但在用户请求之前对其进行编译。预编译有几个优点

于 2010-08-12T20:36:32.090 回答
1

确实没有理由它不应该工作,但它通常被认为是一个坏主意。他是直接在共享网站上开发吗?这很可怕。即使他不是,这也会将大量文件放在不应该存在的共享站点上。服务器可能被配置为不返回它们,但依赖它不应该感到舒服。

即使在他的本地机器上,这也是不好的做法。如果没有其他原因,它没有正确模仿已发布的站点,并成为一个不好的地方来测试东西。

于 2010-08-12T20:32:48.893 回答
1

Inetpub 文件夹没有什么特别之处——它只是按照惯例的默认 Web 服务器根目录。如果它也是解决方案的一部分(仅在项目文件的 XML 中引用),它不会阻止 IIS 显示 ASPX 页面。您还可以将 IIS 指向 Visual Studio Projects 文件夹中的项目目录。

于 2010-08-12T20:42:58.180 回答
1

在 C: 上存储用户数据通常是不好的做法(特别是对于程序员)。我们大多数人都有一个数据分区,其中只包含经常备份的用户数据或使用另一台服务器上的源存储库。

如果您在一个安全的 LAN 上并且只是自己开发,那么将解决方案放在 InetPub 中确实没有问题。但是,如果您使用相同的 IIS 发布到世界,我不会推荐它。你永远不知道谁会得到你珍贵的宝石。

于 2010-08-12T20:49:59.720 回答
0

我会说这是不好的做法。您的整个代码都受 Web 服务器的支配。如果服务器被黑客入侵,则代码是免费赠品。

于 2010-08-12T20:36:13.413 回答