ASP.NET+IIS+Sql Server环境搭建 - 碎羽love星谊

ASP.NET+IIS+Sql Server环境搭建

  • Windows上安装IIS
    • Windows Server上可能已经打开了IIS等模块,如果是普通的Windows如WIn10,那么需要去控制面板->Programs and Featues->Turn WIndows features on or off中打开。(Windows Server通常是去Server Manager)
    • 如果Windows server上还没有装IIS,那么需要自己去Server Manger上Add Role。
      • 如果用到了Windows认证,那么Windows Authentication要单独安装,否则IIS上网站的Authentication下面没有Windows Authentication的选项。
  • Windows上安装.NET Framework和ASP.NET
    • 旧的版本上,如果IIS和ASP.NET安装顺序不对的话,可能需要手动用命令(.NET Framework目录下的aspnet_regiis.exe -I)注册ASP.NET到IIS。而新版Windows/IIS/ASP.NET,还是推荐去控制面板上打开开关。
    • 如果Windows server比较新,可能默认装的是.NET Framework 4.0+,那么如果需要的话,要手动下载和安装.NET Framework3.5(含2.0),直接Add Role里面去增加安装,会失败。ASP.NET也是一样。
      • 可能不能下载单独的离线安装包,需要什么sxs源,如果有Windows的ISO安装镜像,那么可以直接挂载,里面就有,不需要再去找了下载了。
  • IIS
    • application pool
      • 网站的运行环境,如.net framework
      • 每个网站对应一个独立的application pool,互不干扰。
        • 一个网站下的多个application或virtual directory也是公用一个application pool
      • 可以设置.net framework版本和集成模式(integrated或classic)
    • website/application/virtual directory
      • website
        • 新建时
          • 起一个名字
          • 会新增一个对应的application pool
          • 需要指定物理路径(到website编译结果那一级)
          • 可以绑定IP和端口
          • 如果已经申请了域名,可以绑定域名
      • application
        • 一个website下可以有多个,共享端口
        • 可以转成virtual directory
      • virtual directory
        • 一个website下可以有多个,共享端口
        • 可以转成application
    • Module和Handler
      • 一般不需要手动设置MIME Type,因为安装/注册Module和Handler的时候会自动加上很多(比如ASP.NET)
      • 因为IIS支持不同的语言,所以.net,PHP什么的,都可以是不同的一套module和handler
      • 而且也可以自定义module和handler进行请求的处理
        • 比如.net就需要把网站用到的第三方或者自定义的module或handler写到web.config中(会在运行或部署时自动配置到IIS上?)
    • 认证
      • 如果应用需要windows认证,那么需要在IIS上把其他的认证disable(比如匿名认证),打开windows认证即可,然后在ASP.NET代码中就可以通过Page.Request.ServerVariables[“LogonUser”]来获取用户名,然后再去Directory Server获取其他信息?
  • Sql Server
    • Server Instance
      • 安装
        • 第一步可以选择想装什么。一般选第一个,“全新SQL Server独立安装或向现有安装添加功能”。其他的如“安装SQL Server Data Tools”,包含了数据迁移工具/Reporting Service/Analysis Service等功能。
        • 功能选择。
          • Sql Server有很多功能,一般选第一个基本的数据服务即可,其他的全文检索之类的功能看需求吧。
        • 实例配置。一般默认就好,也就是用默认实例(名)- MSSQLSERVER,一台机器上其实可以有多个实例。
        • 服务器配置。一般默认就好。可以给每个Sql Server服务设置不同的账户和启动类型(手动/自动/禁用)。需要特别加上Network Service吗?
        • 引擎模式(认证方式)
          • 默认是Windows继承认证
          • 如果以后要用账号密码认证方式,这里就要改成混合认证,或者安装以后也能改,
            • 但一定要在使用账号密码登陆之前就要用Windows登陆的账号改掉,不然不能使用账号密码登陆,会报错,因为这是server的配置,即使是as账号。
          • 可以指定一个管理员账号
            • 这个管理员域账号一般就是本机账号,一般就是Windows认证的账号?
    • Sql Server Management Studio(SSMS)管理客户端
      • 需要单独安装
      • Security
        • Server Roles
          • 作用于整个数据库实例Instance的,而不止是到某个Database的
          • 默认是一些sysadmin,public,serveradmin之类的角色
          • 也可以自定义
        • Logins
          • 可以登陆的账号
          • 有一些默认的账号,用于SQL Server服务,如NT AUTHORIZATION,sa等
          • 也可以自定义
          • 属性页有一些配置
            • User Mapping(也可以在某个Database的Security下设置)
              • user有了某数据库的mapping后,才能访问该数据库
              • 可以在Schema列设置对该数据库的具体权限角色,如[dbo],[sys],[guest],[db_accessadmin]之类的
            • Status
              • Permission to connect to database engine。即是否可以用于连接数据库引擎
              • Login。即是否可以用于登陆
      • 备份与恢复
      • 附加数据库(Attach)
        • 使用mdf文件,会自动找同目录下的lldf文件(事务日志文件,不影响最新数据,但有这个文件的话可以恢复到任一时间点)
    • 如果想在别的机器上通过IP或域名来连,那么要防火墙开一下端口(通常是入站规则,1433端口)