学习MVC之租房网站(二)-框架搭建及准备工作
在上一篇<学习MVC之租房网站(一)-项目概况>中,确定了UI+Service的“双层”架构,并据此建立了项目
接下来要编写Common类库、配置AdminWeb和FrontWeb
一、编写Common类库
验证码和计算MD5没什么好说,直接从网上复制来的~.~
以后会逐步扩充,把公用的方法都放到这儿
二、配置AdminWeb和FrontWeb
1. EF和连接字符串
a. EF直接从NuGet安装,EF默认与SqlServer对接,便不需要做额外的配置了
b. 连接字符串:
<addname="connStr" connectionString="Data Source=.; InitialCatalog=ZSZ; User ID=sa; Password=***;"providerName="System.Data.SqlClient" />
2. Log4Net
a. 从NuGet安装 Log4Net,两个WebApplication项目和Service项目都要安装
b. 然后是配置Web.Config,在<configuration>节点下新增log4net配置节点,内容是网上复制来的:
<log4net>
……
<paramname="File" value="App_Data/Log/" />
……
<paramname="MaximumFileSize" value="1MB" />
……
</log4net>
之后生成的日志就会保存到App_Data文件夹,并且每个日志文件最大为1M。
另外,检查下<configSections>节点下是否有<sectionname="log4net"type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>。log4net有时不会自动添加这个设置,需要手动给加上。
c. 设置Global.asax,在Application_Start中,设置log4net.Config.XmlConfigurator.Configure();
d. 在Application_Start中注册log4net后,就可以自动记录未捕获异常了,级别为ERROR。但在有些地方需要记录DEBUG级别日志时,要手写代码,比如要在DBContext中记录查询SQL:
这儿的DebugFormat挺好用的。
3. 进程外Session
虽然对这个小项目来说,进程内Session完全够用,但用个进程外Session尝鲜有何不可,反正是俺自己做主,哈哈~~
对于单一服务器,进程外Session的作用有两点:1)防止服务器因各种原因重启造成Session丢失,一旦Session丢失,用户在浏览器的登录状态就会失效,因为Cookie中SessionId指向的Session找不到了;2)当网站访问量很大时,内存中存储进程内Session的区域可能会被撑爆,这也会导致服务器重启,Session丢失。
而对于服务器集群,除了前面的两点,为了实现Session在各台服务器的共享,就必须使用进程外Session。
进程外Session的实现主要有数据库和状态服务器两种,在存取速度方面,从快到慢依次为 进程内Session、状态服务器Session、数据库Session;数据库Session要从磁盘的表中存取,当然比不上内存的速度,但好处是容量很大,不用担心被撑爆。
本次项目将使用数据库Session
a. 执行aspnet_regsql
我的是32位机器,aspnet_regsql的位置在C:\Windows\Microsoft.NET\Framework\v4.0.30319
运行后,会增加这样的两张表
b. 配置Web.Config
System.web节点下添加
<!--数据库Session配置文件-->
<sessionStatesqlConnectionString="server=.;database=ZSZ;uid=sa;pwd=***"allowCustomSqlDatabase="true" mode="SQLServer"timeout="1000"></sessionState>
Session有效期默认为20分,这儿设置为1000分钟。
启动网站,试着写入一条Session,ASPStateTempSessions表会增加一条记录
结束
项目框架搭建好,配置好了EF、Log4Net和进程外Session,接下来就正式开始数据库创建、Service层和DTO的编写了
博客园:http://www.cnblogs.com/zhixin9001/
CSDN:http://blog.csdn.net/zhixin9001
学习MVC之租房网站(二)-框架搭建及准备工作的更多相关文章
- 学习MVC之租房网站(十二)-缓存和静态页面
在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用.发邮件,并将通过UEditor上传的图片保存到云存储.在项目的最后,再学习优化网站性能的一些技术:缓存和 ...
- 学习MVC之租房网站(三)-编写实体类并创建数据库
在上一篇<学习MVC之租房网站(二)-框架搭建及准备工作>中,搭建好了项目框架,并配置了EF.Log4Net和进程外Session.接下来会编写Eneity类并采用CodeFirst的方式 ...
- 学习MVC之租房网站(四)-实现Service层并进行单元测试
在上一篇<学习MVC之租房网站(三)-编写Eneity类并创建数据库>中,记录了编写Eneity类并采用CodeFirst的方式创建数据库的过程,接下来就到了Service层的实现了,并且 ...
- 学习MVC之租房网站(五)-权限、角色、用户管理
在上一篇<学习MVC之租房网站(四)-实现Service层并进行单元测试>中,记录了实现Service层并进行单元测试的过程,接下来该到"正题"-MVC了,也就是UI层 ...
- 学习MVC之租房网站(六)-用户登录和权限控制
在上一篇<学习MVC之租房网站(五)-权限.角色.用户管理>完成了权限.角色.用户的增删改查,现在将基于前面完成的内容,进行后台用户登录和权限控制功能的开发. 一.用户登录 用户登录涉及到 ...
- 学习MVC之租房网站(七)-房源管理和配图上传
在上一篇<学习MVC之租房网站(六)-用户登录和权限控制>完成了后台用户登录和权限控制功能的开发,接下来要完成的是房源的管理,用户在后台新增.编辑房源信息,供前台用户操作. 一 房源管理 ...
- 学习MVC之租房网站(八)- 前台注册和登录
在上一篇<学习MVC之租房网站(七)-房源管理和配图上传>完成了在后台新增.编辑房源信息以及上传房源配图的功能.到此后台开发便告一段落了,开始实现前台的功能,也是从用户的登录.注册开始. ...
- 学习MVC之租房网站(九)-房源显示和搜索
在上一篇<学习MVC之租房网站(八)- 前台注册和登录>完成了前台用户的注册.登录.重置密码等功能,然后要实现与业务相关的功能,包括房源的显示.检索等. 一 房源显示 房源显示内容较多,涉 ...
- 学习MVC之租房网站(十)-预约和跟单
在上一篇<学习MVC之租房网站(九)-房源显示和搜索>完成了房源的显示.检索,然后是用户的预约看房,以及后台操作员对预约看房的跟单操作. 预约看房仅有将预约信息保存到对应表的操作,预约表有 ...
随机推荐
- 卷积神经网络(CNN)模型结构
在前面我们讲述了DNN的模型与前向反向传播算法.而在DNN大类中,卷积神经网络(Convolutional Neural Networks,以下简称CNN)是最为成功的DNN特例之一.CNN广泛的应用 ...
- 学习Java 以及对几大基本排序算法(对算法笔记书的研究)的一些学习总结(Java对算法的实现持续更新中)
Java排序一,冒泡排序! 刚刚开始学习Java,但是比较有兴趣研究算法.最近看了一本算法笔记,刚开始只是打算随便看看,但是发现这本书非常不错,尤其是对排序算法,以及哈希函数的一些解释,让我非常的感兴 ...
- Spark集群搭建_Standalone
2017年3月1日, 星期三 Spark集群搭建_Standalone Driver: node1 Worker: node2 Worker: node3 1.下载安装 下载地址 ...
- JS传值和传引用
之前看<javascript高级程序设计>时就遇到过一个问题,就是函数传参的问题,书上说是按值传递,而非按引用传递.很多人都会认为js里面有两种传值方式,一种是复制,另一种是数组.对象等按 ...
- Git 基本工作流程
1. 用户信息配置(全局配置) $ git config --global user.name leo$ git config --global user.email hehe_xiao@qq.com ...
- 2017-3-10 SQL server 数据库 T--SQL语句
创建数据库:create datebase 数据库名 注:数据库名不能为中文,不能数字开头,不能符号开头. 删除数据库:drop datebase 数据库名 创建表:create tab ...
- SQLServer索引循环删除
declare qc_cursor cursor SCROLL OPTIMISTIC Forselect siteName from tb_vhostcheckopen qc_cursordeclar ...
- 学习HTML5一周的收获4
/* [CSS常用文本属性] * 1.字体.字号: font-weight:字体的粗细,可选属性值:bold加粗 lighter细体 100~900数值(400正常,700 bold) fo ...
- 在.NET项目中使用PostSharp,使用MemoryCache实现缓存的处理(转)
在之前一篇随笔<在.NET项目中使用PostSharp,实现AOP面向切面编程处理>介绍了PostSharp框架的使用,试用PostSharp能给我带来很多便利和优势,减少代码冗余,提高可 ...
- 1297: [SCOI2009]迷路
1297: [SCOI2009]迷路 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 652 Solved: 442[Submit][Status] ...