16

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

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

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

到目前为止的清单(随时自行编辑,添加任何有价值的内容)

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

10 回答 10

7

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

于 2008-11-25T22:04:19.287 回答
6

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

于 2008-12-01T02:59:47.820 回答
3

实际上,MSDN 上提供了一个关于如何执行安全部署审查的非常好的清单。

于 2009-06-05T12:51:22.953 回答
3

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

于 2008-11-25T21:58:02.623 回答
2

如果您的站点使用数据库并且只显示信息,请将数据库设置为只读。这消除了所有锁定处理并大大加快了访问速度。

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

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

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

于 2008-11-25T22:28:19.270 回答
2

查看您的 web.config

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

将调试更新为生产值:

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

快速搜索:链接

于 2008-11-25T21:53:52.070 回答
2

如果它的所有静态内容,你会想要使用积极的输出缓存

于 2008-11-25T22:01:22.040 回答
1

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

于 2009-03-26T13:03:03.227 回答
0

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

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

于 2009-09-07T16:20:43.207 回答
0

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

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

于 2009-09-07T16:41:13.303 回答