我将把我的第一个MVC网络应用程序部署到互联网上。
对于我这个框架的第一个应用程序,我想知道我是否可以收集一些关于应该采取哪些措施来防止麻烦的建议。
我在这个问题上是通用的,这是收集最多种答案的xpressely。
谢谢!
更新:
感谢大家的回答。问题不只是关于“部署”范围,而是更多这些范围:
简而言之,所有需要从初始部署中解决的问题。
答案 0 :(得分:7)
如果您要在一小时内部署:
确保在项目中将对System.Web.Mvc的引用标记为Copy Local = True。它往往默认为False,因此不会被复制到您的bin文件夹,从而导致应用程序在部署时失败。查看您可能已添加到项目中的Copy Local = True。
确保在代码中发生异常时,最终用户不会显示堆栈跟踪。使用web.config中的<customErrors>
指定您自己的错误页面。
在您的web.config中,确保连接字符串可以在您要部署到的服务器上运行。
您的应用程序是否因任何原因写入磁盘?记录也许吧?有些托管服务不会让你的应用写入磁盘 - 值得提前检查。
部署到本地文件夹,并检查已发布的应用程序。脚本,样式表,图像是否没有毛刺加载?
如果你有更多的时间在手上:
查看安全性代码,XSS注意事项:输入是否已清理?在视图中呈现时,用户输入是否正确编码?
查看数据架构。这可能是您修改空数据库的最后机会。部署之后,您只能希望轻轻更新实时数据,尽量避免损害应用程序逻辑中的现有数据和依赖关系。
如果您还没有,请务必设置Google Analytics分析帐户。您将对您的网站的使用方式感到好奇,这是最好的免费工具之一。 Goog分析以及搜索引擎注册将要求您将具有时髦名称的文件放在域名的根“文件夹”中。验证您的应用可以从根文件夹提供文件,或设置控制器+路由来处理这些请求。
答案 1 :(得分:2)
没有。 0:确保patch的padding oracle vulnerability被应用,当然这不仅适用于asp.net MVC,而是适用于任何asp.net应用程序。
答案 2 :(得分:1)
如果您使用IIS 5.1或6在自己的服务器中部署MVC站点:
aspnet_isapi.dll
和动词GET,HEAD,POST,DEBUG
的可执行路径。Default Web Site
如果在虚拟目录中,则在虚拟目录中执行1。如果要在共享主机中部署MVC站点,则无法访问IIS设置。
{controller}.aspx/{action}/{id}
)。但我不建议这样做。答案 3 :(得分:0)
Palermo,Bogard等的着作“动画中的ASP.NET MVC 2”来自Manning,是使用MVC的极好的信息来源,并且有一章专门讨论部署技术,免费提供:http://github.com/jeffreypalermo/mvc2inaction/tree/master/manuscript/Chapter17/ < / p>
我认为这可能包含你需要的一切。