【问题标题】:ASP.NET - Basic checklist for putting a site into productionASP.NET - 将网站投入生产的基本清单
【发布时间】:2010-09-24 01:22:34
【问题描述】:

我正在构建一个静态 ASP.NET 站点(使用 Masterpages 和一些表单),并且即将将它发布到我的生产服务器上。

我知道将 <compilation debug="true"> 更改为 false,但我想知道我还能做些什么来获得尽可能高的速度。网站没有数据访问,都是静态内容。

是否有任何人有他们通过的清单或知道在生产环境中设置站点的好资源,重点是性能?

到目前为止的清单(如果有任何值得补充的内容,请随时自行编辑)

  1. 确保 <compilation debug="false" /> 在 Web.Config 中实际设置为 false
  2. 确保 <trace enabled="false" /> 在 Web.Config 中实际设置为 false
  3. 为站点设置必要的读/写/修改文件夹权限
  4. 在 IIS 中启用 GZIP(显着减小页面/css/javascript 的大小)
  5. 您是否考虑过任何页面/控件的 OutputCaching?
  6. 考虑设置 Web 测试(例如 .NET 的 WatiN)以确保您网站上的功能仍然可以正常工作
  7. 确保不是周五下午!

【问题讨论】:

    标签: asp.net performance deployment production


    【解决方案1】:

    如果您正在编写任何日志或输出文件,请确保在生产环境中设置了正确的文件夹权限。通常调试/测试环境在文件读/写权限方面比生产环境宽松得多。

    【讨论】:

      【解决方案2】:

      不要在周五下午部署!这肯定会让你在周末搞砸。

      【讨论】:

        【解决方案3】:

        另外,不要忘记检查 IIS 中的 gzip 设置。压缩输出将使事情通过网络传输得更快。

        【讨论】:

          【解决方案4】:

          实际上在 MSDN 上提供的how to perform a security deployment review 上有一个非常好的清单。

          【讨论】:

            【解决方案5】:

            如果都是静态内容,你会想要使用激进的Output Caching

            【讨论】:

              【解决方案6】:

              如果您的网站使用数据库并且仅呈现信息,请将数据库设为只读。这消除了所有锁定处理并加快了访问速度很棒

              如果您有一个更新数据的后端,请将其设为一个单独的数据库,并安排每天更新一次只读数据库的周期或该应用程序所需的更新时间。

              如果您只是在公司网站上展示新闻和其他不经常变化的小事,那么此解决方案可能适合您。即使它是一个拥有千兆字节数据的网站。关键词是,我们多久更新一次数据?

              从我在日常业务中看到的情况来看,没有人真正考虑过这个解决方案,因为一切都必须是“实时的”,但在很多情况下这将是一个完美的解决方案。

              【讨论】:

                【解决方案7】:

                查看您的 web.config

                检查调试(web.config / *.svc)、跟踪、...

                将调试更新为生产值:

                • 电子邮件地址
                • (网络)服务地址
                • 位置日志文件

                快速搜索:link

                【讨论】:

                • 我觉得你提到更新日志位置和禁用跟踪很有趣。在我所在的位置,我们有一个直接输出到日志文件的跟踪侦听器,因此两者是互斥的。
                【解决方案8】:

                您应该进行某种测试来验证您网站的各种功能和权限。例如,一旦您发布。浏览清单,如果我没有权限,我可以访问 x 吗? x,y,z 是否适用于应用程序?我在每次发布后都会这样做,因为小的更改会产生很大的影响。

                【讨论】:

                  【解决方案9】:

                  您应该阅读以下内容:
                  https://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site

                  它目前是关于 SO 的第 9 高投票问题,也是最受欢迎的前 3 名。需要注意的是,它与平台无关,因此缺少一些 ASP.Net 特定的项目。

                  【讨论】:

                    【解决方案10】:

                    清除浏览器缓存后,在公司防火墙/代理之外彻底测试网站。这将有助于确保所有资源都可以公开访问(并且不在本地服务器上或缓存)。例如,您可能会发现您使用绝对 URL 来包含 JavaScript 或 CSS 文件。这些在您的开发环境中可以正常工作,但是一旦站点上线,它们就无法访问。或者您的缓存中有一个 CSS 文件随后被删除,但您没有注意到。

                    确保您使用的任何具有与域相关联的密钥的产品/应用程序都可以在您的实时站点上运行。这包括诸如 Google Map 键或商业 3rd 方应用程序之类的东西。它还包括通过电子邮件发送的自动生成的超链接。您不希望用户注册具有返回 http://localhost/comfirm.aspx 或类似名称的链接,对吗?

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2014-11-05
                      • 2013-04-24
                      • 2010-11-26
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多