【问题标题】:Is it ok to store a solution inside inetpub?可以在 inetpub 中存储解决方案吗?
【发布时间】:2010-08-12 20:30:21
【问题描述】:

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

【问题讨论】:

标签: c# .net asp.net iis-6 iis-5


【解决方案1】:

它之所以有效,是因为该网站会即时编译。从性能的角度来看,这很糟糕(因为编译较晚),从安全的角度来看也很糟糕(您暴露的代码超出了必要的范围)。

来自MSDN

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

【讨论】:

  • 很好的答案。正是我需要知道的。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        我会说这是不好的做法。您的整个代码都受 Web 服务器的支配。如果服务器被黑,代码是免费的奖励。

        【讨论】:

        • 我同意这是不好的做法,但我不会误解编译后的 DLL 会隐藏您的源代码。反编译器可以轻松地从 .Net DLL 中提取源代码。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-03
        • 2011-01-31
        • 2014-05-22
        相关资源
        最近更新 更多