ASP.NET MVC3在web.config中发布设置

时间:2012-01-25 19:08:27

标签: asp.net asp.net-mvc-3 web-config

我发布了一个ASP.NET MVC3站点。它运行得很好。但是,回顾一下我的web.config文件,我不确定我使用的某些值是否适合发布和开发。这些配置位于<system.web>部分。

...
    <system.web>
    <httpRuntime requestValidationMode="2.0" executionTimeout="200" maxRequestLength="20000000"/>
    <compilation debug="true" targetFramework="4.0">
...

我在这里阅读(http://msdn.microsoft.com/en-us/library/e1f13641.aspx)在编译时使用debug = true将忽略200的executionTimeout,并使用默认值110.这似乎是这种情况,并且网站设置为允许非常大量文件一次上传。但是,只需110秒,就无法上传。

我的问题是:发布实时网站以进行调试“false”的设置是否正确?另外,requestValidationMode =“2.0”仍然可以安全使用,考虑到asp.net现在是版本4(很快就会是4.5)?

2 个答案:

答案 0 :(得分:3)

Validationmode 2.0不是框架版本,可以保持这样。

把debug = false,你很好。

答案 1 :(得分:2)

requestValidationMode ...据我所知,如果要在请求数据中允许特殊字符(&lt;,&gt;,%等),则设置为2.0完全传递ASP.NET的请求验证。 requestValidationMode =“2.0”表示“仅强制对页面进行验证(即.aspx),而不是对每个请求进行验证(如4.0中所述)。这允许ASP.NET MVC接管验证 - 因此也可以让你关闭特定的请求。

安全吗?如果您已确保已应用[ValidateInput(false)]的所有操作或控制器或具有[AllowHtml]的模型已正确抵御攻击,那么就是这样。 Imran Baloch有一个完整的解释here

是的,调试应该是“假”,原因有几个,包括性能和内存使用情况。此外,debug =“true”会将静态文件的默认缓存策略更改为永远不会在浏览器中缓存文件,这意味着需要大量冗余的脚本请求,CSS等。

对于图像上传,除了给出的建议之外,请在事件查看器中检查由于某种原因而不是应用程序池回收,而不是执行超时。