我正在构建一个静态ASP.NET站点(使用Masterpages和一些表单),我即将将它发布到我的生产服务器上。
我知道将<compilation debug="true">
更改为false,但我想知道我还能采取哪些其他措施来获得最高速度。网站中没有数据访问权限,它都是静态内容。
是否有人制作了一份清单,或者知道在生产环境中设置网站的良好资源,重点关注绩效?
到目前为止核对清单(随意添加任何有价值的内容自行编辑)
答案 0 :(得分:7)
如果您正在编写任何日志或输出文件,请确保在生产环境中设置了正确的文件夹权限。通常,调试/测试环境在文件读/写权限上比生产要宽松得多。
答案 1 :(得分:6)
不要在周五下午部署!这保证会在周末搞砸你的头脑。
答案 2 :(得分:3)
另外,不要忘记检查IIS中的gzip设置。压缩输出将使事物更快地穿过电线。
答案 3 :(得分:3)
MSDN上提供的how to perform a security deployment review实际上有一个非常好的清单。
答案 4 :(得分:2)
答案 5 :(得分:2)
如果是所有静态内容,您将需要使用激进的Output Caching
答案 6 :(得分:2)
如果您的网站使用数据库且仅显示信息,请将数据库设为只读。这消除了所有锁定处理和速度,以获得伟大的交易。
如果您有一个更新数据的后端,请将其设置为一个单独的数据库,并且每天更新一次只读数据库或该应用程序所需的时间。
如果您只是在公司网站上展示不经常更改的新闻和其他小事,那么这个解决方案可能适合您。即使它是一个拥有千兆字节数据的网站。关键是,我们多久更新一次数据?
从我在日常业务中看到的,没有人真正想到这个解决方案,因为一切都必须是“实时”,但有很多情况下这将是一个完美的解决方案。
答案 7 :(得分:1)
您应该进行某种测试,以验证您网站的各种功能和权限。例如,一旦你发布。浏览一份清单,如果我没有许可,我可以访问x吗? x,y,z是否适用于应用程序?我在每次发布后都这样做,因为小的变化会产生很大的影响。
答案 8 :(得分:0)
目前这是SO上第9个最高投票问题,也是最受欢迎的前三个问题。需要注意的是,它与平台无关,因此缺少一些特定于ASP.Net的项目。
答案 9 :(得分:0)
清除浏览器缓存后,彻底测试公司防火墙/代理外部的站点。这将有助于确保所有资源都可公开访问(并且不在本地服务器上或缓存)。例如,您可能会发现已使用绝对URL来包含JavaScript或CSS文件。这些在您的开发环境中工作正常,但是一旦网站上线,它们就无法访问。或者您的缓存中有一个随后被删除的CSS文件,但您没有注意到。
确保您使用的具有与域绑定的键的任何产品/应用程序都可以在您的实际站点上运行。这包括谷歌地图键或商业第三方应用程序。它还包括在电子邮件中发送的自动生成的超链接。您不希望用户注册返回http://localhost/comfirm.aspx之类的链接,是吗?