zoukankan      html  css  js  c++  java
  • 学习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:WindowsMicrosoft.NETFrameworkv4.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

  • 相关阅读:
    java new 关键字到底做了什么?
    (转载)Eclipse中使用SVN
    图标常用网站
    正则表达式之RegExp对象
    表单验证之日期大小验证
    表单验证之正则表达式
    表单验证之JQuery Validate控件
    (转载)SVN使用说明
    oracle中group by 和order by同时存在时
    Oracle用户密码过期问题解决
  • 原文地址:https://www.cnblogs.com/zhixin9001/p/6688004.html
Copyright © 2011-2022 走看看