从零开始编写自己的C#框架(25)——网站部署
导航
1、关掉访问保护
2、发布网站
3、复制网站到服务器
4、添加新网站
5、设置网站访问权限
6、设置文件夹访问权限
7、控制可更新文件夹执行权限
8、设置“应用程序池”.net版本与模式
9、附加数据库
10、添加数据库访问用户
11、设置数据库链接
12、部署注意事项
对于网站的安全部署方面,大家请看我以前写的《服务器安全部署文档》里面已基本上将服务器相关的安全设置都讲到了,照着里面的操作一般的黑客是比较难攻击进来的(代码漏洞除外),而本章的部署则是是该篇设置好的基础上来创建站点的。
1、关掉访问保护
打开安全防护软件,关掉访问保护(由于做了策略,在服务器上未经授权无法创建dll和exe文件,不关掉的话就没办法拷贝网站的dll文件到服务器里)
记得网站添加成功后重新开启访问保护
2、发布网站
打开解决方案,对Web项目按右键,在弹出的菜单中点击“发布”——这样生成的是Debug版部署包,如果发布到正式环境的话,可以点击“生成部署包”来发布正式版
选择发布方法为文件系统,点击发布按键发布网站
将红框框住的文件夹内容复制到发布成功的文件夹中(由于这些文件夹没有包含到项目中,所以发布时并没有一起发布出来——这样做是为了打开解决方案时,不用加载太多内容,而导致解决方案打开速度太慢,影响VS使用性能)
这是发布后的文件夹,红色框框住的就是复制进来的文件夹
3、复制网站到服务器
将发布成功的文件夹复制到服务器中,并进入bin文件夹,删掉pdb文件
4、添加新网站
如果是在本地操作且不会修改host的话,主机名那里请不要填写,如果是在服务器上操作且你有自己的域名,请在主机名填写你自己的域名
5、设置网站访问权限
请双击“身份验证”
在打开的窗口中选择“匿名身份验证”,然后点击“编辑”
选择“应用程序池标识”
6、设置文件夹访问权限
对新建好的网站按右键,点击“编辑权限”
选择“安全”标签,点击“编辑”
然后点击添加
在空白处输入应用程序池名称“IIS AppPool\www.test.com”后点确定(对于有些站点,可能还要添加Authenticated Users这个用户才能正常访问)
完成应用程序池访问权限添加,在权限那里不能赋予修改权限
7、控制可更新文件夹执行权限
我们在做网站文件夹配置时,必须做到“可写入文件夹无可执行权限,可执行文件夹无写入权限”这个要求,这样才能令网站更加安全
对于红色框框住的文件夹,虽然不都是可写入的文件夹,不过由于里面放置的都是不需要执行的文件,所以都将它们设置为无执行权限
首先选择指定文件夹,然后双击右边的“处理程序映射”
打开后点击右边的“编辑功能权限”
将“脚本”前面的勾去掉
然后对我们框架中需要有写入权限的两个文件夹Data和UploadFile赋予写入权限
对文件夹按右键,点击”编辑权限“
在”安全“标签中点”编辑“
给刚才添加的应用程序池名称“www.test.com”赋予“修改”权限
8、设置“应用程序池”.net版本与模式
设置它为.net4.0+经典模式
9、附加数据库
添数据库复制到服务器
打开数据库管理器,对“数据库”按右键,点击“附加”
然后将数据库附加进来
10、添加数据库访问用户
打开安全性=》登陆名
右键菜单,点击新建登录名
输入登陆名、密码和选择默认数据库
选择“用户映射”,对“SolutionDataBase”数据库打勾,并设置数据库角色成员身份(新建时这里经常会看到自动打勾的,实际上并没有选中,需要点击“确定”后重新打开,然后再勾上才行,这个应该是MsSql的一个Bug)
11、设置数据库链接
然后大家打开服务器新建网站的Web.config,将里面的数据库链接用户名与密码设置为刚刚创建的数据库访问用户名与密码后,打开浏览器就可以正常访问了。
12、部署注意事项
将《服务器安全部署文档》的一些重要粘贴过来,让大家再次重温一下注意事项
1) 更新前一定要经过自测和测试部门人员测试通过;
2) 修改网站任何配置都必须提前做好备份,方便出问题时回档;
3) 修改了服务器端的任何设置都必须提交做好拷屏与记录,方便网站出现任何问题时快速的找出问题;
4) 对服务器端的相关端口进行变动时,必须提前在Windows防火墙和McAfee防火墙提前开通对应的端口,修改好端口重启服务器或软件后,记得关闭原端口,并且做好测试工作,防止发生无法访问的情况,特别对于远程访问端口的修改必须小心,不然可能会造成无法远程登陆的情况;
5) 当发生某功能无法运行或出错的时候,请先检查Windows防火墙、McAfee访问保护和防火墙,看看是否是给访问保护规则阻止了。
6) 必须定期检查用户管理查看是否有多余的用户和用户隶属组是否改变;检查应用程序日志、安全日志、系统日志、IIS访问日志、网站后台管理记录的日志、网站目录中记录的操作日志与充值日志、McAfee访问保日志等,并做好备份工作;查看Windows防火墙、McAfee访问保护和防火墙是否运行中,有没有不小心关闭后忘记开启了;检查SQL的相关日志与记录增长量,检查SQL备份情况,备份空间是否足够等;(具体可查看我的另一篇文章《服务器安全检查指引——日常维护说明》)
7) 除了做好服务器安全相关配置外,代码的安全也是非常重要的,所有提交的数据必须做好过滤操作,防SQL注入和XSS攻击,客户端定期杀毒查木马,定期修改登陆密码,以保证系统安全。
发布最后更新的解决方案:
更新了《数据字典》的“目录与文件说明”
并修复了下面Bug:信息列表加条件查询不出来的问题;修复ConfigHelper类(配置读取)获取布尔类型时无法辨别true字符串问题;修复新增员工即标识为离职状态的问题。
由于框架不是非常成熟,很多朋友不是用来学习而是直接用到项目中,但不熟悉框架引起不少小问题,所以停止提供下载,有需要学习的可以到群共享里下,不便之处敬请谅解。
本文转自 AllEmpty 博客园博客,原文链接:http://www.cnblogs.com/EmptyFS/p/3854315.html,如需转载请自行联系原作者
从零开始编写自己的C#框架(25)——网站部署相关推荐
- 从零开始编写自己的C#框架(17)——Web层后端首页
后端首页是管理员登陆后进入的第一个页面,主要是显示当前登陆用户信息.在线人数.菜单树列表.相关功能按键和系统介绍.让管理员能更方便的找到息想要的内容. 根据不同系统的需要,首页会显示不同的内容,比如显 ...
- 从零开始编写自己的C#框架(1)——前言
记得十五年前自学编程时,拿着C语言厚厚的书,想要上机都不知道要用什么编译器来执行书中的例子.十二年前在大学自学ASP时,由于身边没有一位同学和朋友学习这种语言,也只能整天混在图收馆里拼命的啃书.而再后 ...
- 从零开始编写自己的C#框架(16)——Web层后端父类
从零开始编写自己的C#框架(16)--Web层后端父类 原文:从零开始编写自己的C#框架(16)--Web层后端父类 本章节讲述的各个类是后端系统的核心之一,涉及到系统安全验证.操作日志记录.页面与按 ...
- 从零开始编写自己的C#框架(8)——后台管理系统功能设计
还是老规矩先吐下槽,在规范的开发过程中,这个时候应该是编写总体设计(概要设计)的时候,不过对于中小型项目来说,过于规范的遵守软件工程,编写太多文档也会拉长进度,一般会将它与详细设计合并到一起来处理,所 ...
- 从零开始编写自己的C#框架(9)——数据库设计与创建
对于千万级与百万级数据库设计是有所区别的,由于本项目是基于中小型软件开发框架来设计,记录量相对会比较少,所以数据库设计时考虑的角度是:与开发相结合:空间换性能:空间换开发效率:减少null异常.... ...
- 从零开始编写自己的C#框架(11)——创建解决方案
从零开始编写自己的C#框架(11)--创建解决方案 参考文章: (1)从零开始编写自己的C#框架(11)--创建解决方案 (2)https://www.cnblogs.com/EmptyFS/p/37 ...
- PHP - 从零开始编写自己的PHP框架 - 学习/实践
1.应用场景 自己动手编写一个框架, 帮助学习思考目前常用框架的架构,更加熟悉PHP脚本语言, 学习理解设计思想, 设计原则, 设计模式. 2.学习/操作 1. 文档 如何用PHP写个优雅的Mock框 ...
- 从零开始编写自己的C#框架(20)——框架异常处理及日志记录
最近很忙,杂事也多,所以开发本框架也是断断续续的,终于在前两天将前面设定的功能都基本完成了,剩下一些小功能遗漏的以后发现再补上.接下来的章节主要都是讲解在本框架的基础上进行开发的小巧. 本框架主要有四 ...
- 从零开始编写自己的C#框架(18)——Web层后端权限模块——菜单管理
从本章开始,主要讲解的是页面中对框架相关功能的调用方法,比如列表页面(又分为有层次感列表和普通列表).编辑页面.多标签页面等,只要熟悉了这些函数的使用方法,那么开发起来就会很便捷了. 1.如图先创建菜 ...
最新文章
- python GUI编程( 二 ) (基于PyQt5)
- 一次 Jar 包升级引发的血案 amp; 解决
- 《数据科学:R语言实现》——2.7 爬取网络数据
- 7 怎么查看文件夹容量_C盘(系统盘)磁盘剩余容量告警?如何解决与预防,C盘容量告急解决方法简单汇总!...
- IOS开发之——颜色设置
- 阿里云:面向5G时代的物联网无线连接服务
- 如何通过outlet在SAP Spartacus的产品明细页面插入自定义UI
- 面向对象三大核心特点,封装、继承和多态
- Best Practices for Speeding Up Your Web Site(4)
- 为什么时间是60进制的啊? ? ?
- 使用51单片机驱动航模无刷电机
- 扬州大学计算机科学与技术怎么样,用实力说话!这3所“低调”的大学,有望成为“双一流”建设高校...
- 电气版CAD学习笔记
- java servlet mysql_servlet+mysql实现简易的登录功能
- 笔记本键盘字母变数字解决方法
- 为什么要使用异常及java异常的使用--及js、php、golang的异常机制
- Python-opencv学习笔记
- 【一起学Rust | 框架篇 | Viz框架】轻量级 Web 框架——Viz
- Java微服务+分布式+全栈项目(一)---->项目介绍+MyBatis-Plus入门
- java电商商品基本信息表,Java生鲜电商平台-商品表的设计
热门文章
- 概率论-2.1 随机变量及其分布(重点:右连续的来源)
- [BUUCTF-pwn]——picoctf_2018_shellcode
- java切面获取reqiest,怎么在webflux切面中获取请求头.
- mysql数据库自动重新连接_mysql数据库自动重新连接
- 学习记录-Linux内核模块查看命令
- Java路径问题最终解决方案
- goole机器学习视频链接【学习笔记】
- Beta阶段发布说明
- JavaEE笔记(九)
- 板邓:wordpress循环输出分类信息函数get_categories()