ASP.net MVC项目构建注意事项
前提条件是安装Microsoft Visual Studio
.net framework版本
既然要使用.net framework,首先就要确定用什么版本,这就和服务器已安装的.net framework版本息息相关了(当然也可以不管服务器安装了什么版本,直接用最新的版本,在部署时再在服务器上安装相应需要的版本,但是在很多公司的服务器都是仅能访问内网的,所以需要下载脱机安装包,如4.6.2脱机安装程序下载
),然而我刚入司,很害怕一通操作把唯一的外网服务器给弄崩掉,所以直接使用服务器上有的.net framework版本。
查看服务器.net framework版本
1.打开注册表
windows + R运行regedit.exe,打开注册表
2.对于1-4版本的.net framework,在注册表中按以下路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
可以看到安装过的所有的1-4版本.net framwork:
3.对于4.5及以上版本的.net framework,在注册表中按以下路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
通过"Release"的值判断版本,对照以下表:
创建项目
确定使用.net framework4.5版本,创建MVC项目
日志的使用
1.用**"管理NuGet程序包"引入log4net.dll程序集**
在项目上右键->管理NuGet程序包->浏览->log4net
选择安装
2.在项目的Web.config文件中插入代码:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
位置如下:
3.继续在Web.config文件中插入代码:
<log4net>
<appender name="SysLogAppender" type="log4net.Appender.RollingFileAppender">
<!--日志文件位置-->
<param name="File" value="log\\"></param>
<param name="AppendToFile" value="true"></param>
<param name="RollingStyle" value="Date"></param>
<param name="DatePattern" value=""Logs_"yyyyMMdd".txt""></param>
<param name="StaticLogFileName" value="false"></param>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[时间]:%d%n[级别]:%p%n[内容]:%m%n%n"></conversionPattern>
</layout>
</appender>
<root>
<level value="INFO"></level>
<appender-ref ref="SysLogAppender"></appender-ref>
</root>
</log4net>
位置如下:
4.在Global.asax文件中插入以下代码:
log4net.Config.XmlConfigurator.Configure();
位置如下:
5.使用,在要使用的文件中引入log4net程序集,再声明一个日志对象就可以使用了:
使用效果如下:
在项目中增加了log文件夹用于存放日志:
日志格式如下:
隐藏IIS和MVC版本信息
主要包括以下信息:
- X-AspNetMvc-Version
- X-AspNet-Version
- X-Powered-By
- Server
1.隐藏MVC版本信息(X-AspNetMvc-Version):在Global.asax的Application_Start方法中插入代码:
MvcHandler.DisableMvcResponseHeader = true;
如图所示:
2.隐藏asp.net版本信息(X-AspNet-Version):在Web.config文件的system.web节点下的httpRuntime节点增加属性:
enableVersionHeader="false"
如图所示:
3.隐藏X-Powered-By节点:在web.config文件中插入以下节点:
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
如图所示:
4.隐藏IIS版本信息:在Global.asax文件中增加以下方法:
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
HttpApplication application = sender as HttpApplication;
if (application != null && application.Context != null)
{
application.Context.Response.Headers.Remove("Server");
}
}
如图所示:
可以看到,在请求的response.header里面已经没有了这四个信息:
可以开始开发~