我来配置WindowServer2012

安装中文语言包
关闭音量
关闭操作中心消息

设置更新模式,推荐更新,但是让我选择是否下载和安装
更改区域和Unicode的位置为中国
设置中文时区 北京

更新密码
重启服务器

安装IIS
https://jingyan.baidu.com/article/90895e0ffb5c1764ec6b0bbb.html
更改应用程序池32位的版本

显示桌面
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0

安装GG浏览器
查看安装的.net版本
安装.net4.6 4.7

安装软件
zip
vcredist_x86
安全狗
开始优化服务
设置安全狗

配置IIS SSL
分区C盘保留60G
禁用IIS的日志
配置IP地址
加入环境变量
C:\Windows\System32\inetsrv
配置IIS . text/plain

配置数据库驱动程序2007

Octopus-backend目录文件说明列表

Backend_ShoppingCart.html 购物车页面调用的模块

_w_cart_empty.html购物车为空模块
_w_cart_mobile.html手机端展示
_w_cart_pc.html电脑端展示
_w_coupon.html判断优惠码消息提示
_w_coupon_code.html展示优惠码
_w_layer.htmlloading遮盖层

Backend_New_Shipping.html 确认客户收货地址页面调用的模块

_w_backend_new_shipping_hidden.html隐藏的提交参数
_w_address_detail.html遍历客户的收货地址
_w_get_ship_list.html遍历送货方式列表

Backend_New_Payment.html 确认客户账单地址页面调用的模块

_w_payment_order_detail_V2.html展示订单详情
_w_address_detail_for_payment.html展示地址详情
_w_get_pay_list.html展示支付方式

Backend_Complete.html 填写信用卡信息完成支付页面Backend_Complete_Western_Union.html 单独使用西联支付的说明页面Backend_Edit_Address.html 编辑【收货】地址页面Backend_Change_Payment_Address.html 修改添加账单地址的页面Backend_Login.html 登陆页面

_Form_Login.html

Backend_Register.html 注册页面

_w_address_form_div.html注册表单:收货地址信息部分
_w_address_reg_div.html注册表单:用户信息部分

_Backend_footer.html backend头部_Backend_header.html backend尾部共计15个wid的小模块,9个页面

Octopus-common文件夹解析

html_header.html

程序全局的头部<head></head>标签之间的代码,最最主要的功能就是根据不同的页面加载不同的样式表。

html_footer.html

程序的底部</body>标签之前,主要就是加载全局的js脚本,遵循“头部样式底部脚本的原则”

_OCT.html

定义了系统中使用的一些业务实例,实例在全局可用,最最靠前的一个wid部件

_SEO.html

定义系统的SEO三要素

_Self_Js.html

定义每个页面的一些个性化的js脚本,每个页面运行的js代码多少有些差异,我想让每个页面只加载并运行只属于自己的代码。我把它单独成一个wid部件,方便被各个页面所引用,这是早期的设计。后面我使用VH助手,对这个部件进行计算,并将计算结果压缩输出。VH是什么?后期我会讲解。此部件的输出调用在html_footer.html页面,在加载了所有的代码之后使用$VH.OutString(true)来输出这个部件。

_t_js.html

是我喜欢测试一些js代码在页面中运行的效果,测试通过之后将代码在拷贝到lib.js中

51.html

顾名思义,此处写网站的统计代码,单独分离出来,有好有坏,好处就是你可以只将此部件在需要统计的页面引用。

Octopus系统解析-OctService基类定义

OctService页面服务类,请求上下文

封装了9个属性

数据:UserData,LangItems

用户:SessionID,CustomerID,IsLogin,Customer

业务:CartID,Currency,Language

下面我来说说这几个属性是怎么初始化的,小伙伴先有一个大概的了解,其实非常的简单,理解程序代码要先理解代码的执行流程。执行的流程必然有先后的顺序,下面我让大家看看Octopuscart的先后顺序是怎么走的。

在静态构造函数中加载语言包,静态构造函数只需要执行一次

此时LangItems被初始化

在构造函数中初始化:货币,语言,购物车ID


注意:构造函数中不能获得Session对象,所以此时不能对session进行任何的操作,但是可以对cookie进行操作
货币,语言,购物车ID会被保存到客户端的Cookie中,所以我们先在此处做一次初始化【PS:语言的暂时没用到】

以货币为例:货币在前台页面可以切换。

初始化过程是:先获取系统配置的货币–》Currency具有默认的值–》从cookie中读取客户端的货币代码–》根据此代码对Currency设置–》回写货币代码到cookie【重新刷新了客户端cookie的生命周期】

语言和购物车ID都是这个初始化过程,不过我的项目中语言没有实现,代码逻辑和货币一模一样,可以照葫芦画瓢。

到此时我们已经初始化了4个属性了:

LangItems–Currency–Language–CartID小伙伴继续往下走!

在ProcessRequest中此时Session才可以使用,所以此处可以判断用户是否登陆

HttpContext.Current.Session.SessionID就可以用了,所以一下子就能拿到SessionID,那么如果用户登陆了,就可以检查session,判断是否登陆了获取登陆用户的ID。

判断逻辑非常简单,根据OCKeys.Session_User_ID键值在会话中获取顾客的ID,如果顾客的ID>0,表示当前用户登陆了。

除此之外,还对cookie进行了检查,如果用户选择记住用户选项,那么看看cookie中保存的信息是否有效。如果有效,用于也处于登陆状态。

到此处我们就初始化了SessionID—IsLogin—CustomerID—Customer 等4个选项哦!对了是不是少了一个呢?UserData:UserData我是用来存取数据用的,它在用户登陆的时候会用到,此处先不做介绍。

Octopus-乡间小记-第001期

001: 关于系统中自定义实体带来的弊端
死板不够灵活,查询是灵活多样的,获取数据之前我们不晓得需要什么字段的数据,如果事先定义好一个实体对象,那么获取的数据只能就是定义的类型,这个类型中有些字段我们不需要,但是它被定义了,我们可以初始化这些字段数据,但是总是感觉不好,你定义了,但是在此处查询中你又没有用到它,感觉啰嗦,所以使用通用的一个自定义实体。

002:以点打面

编写文章的时候采用以一点打面的手法来操作。比如写文章的时候可以从一个点入手,Octopus的Url重写;Octopus某个数据表设计手法等等,从细微之处入手,文章慢慢展开娓娓道来,不要一开始就将主题开展的特别宽泛。

【操作符】-?-单引号

最终结果 int? 单引号的含义
C#中不允许对值类型 赋值为空类型,但是赋值空类型有时候是非常有用的【和数据库对应】
”?(单问号)“修饰符,是System.Nullable的缩写形式,比如int?代表是可空的整形,例如:int? a = 1 或者 int? b=null。Nullable类型具有一个HasValue的bool类型只读属性,当Nullable类型实例的该属性为true时,则表示该实例是非空实例,包含一个已知值Value,HasValue为false时,访问Value属性将导致System.InvalidOperationException。

Octopus-backend目录文件说明列表

Backend_ShoppingCart.html 购物车页面调用的模块

_w_cart_empty.html购物车为空模块
_w_cart_mobile.html手机端展示
_w_cart_pc.html电脑端展示
_w_coupon.html判断优惠码消息提示
_w_coupon_code.html展示优惠码
_w_layer.htmlloading遮盖层

Backend_New_Shipping.html 确认客户收货地址页面调用的模块

_w_backend_new_shipping_hidden.html隐藏的提交参数
_w_address_detail.html遍历客户的收货地址
_w_get_ship_list.html遍历送货方式列表

Backend_New_Payment.html 确认客户账单地址页面调用的模块

_w_payment_order_detail_V2.html展示订单详情
_w_address_detail_for_payment.html展示地址详情
_w_get_pay_list.html展示支付方式

Backend_Complete.html 填写信用卡信息完成支付页面Backend_Complete_Western_Union.html 单独使用西联支付的说明页面Backend_Edit_Address.html 编辑【收货】地址页面Backend_Change_Payment_Address.html 修改添加账单地址的页面Backend_Login.html 登陆页面

_Form_Login.html

Backend_Register.html 注册页面

_w_address_form_div.html注册表单:收货地址信息部分
_w_address_reg_div.html注册表单:用户信息部分

_Backend_footer.html backend头部_Backend_header.html backend尾部共计15个wid的小模块,9个页面

How to delete old ssl certificate IIS

Issue: you need to delete an old or expired certificate from an IIS Web Server (IIS 7 through IIS 8).

Solution:

1) Open Internet Information Service (IIS) Manager
2) Select Web Server > Click Server Certificates
3) Right click the certificate and click Remove

delete old ssl certificate IIS

The above steps will remove the certificate from the server’s personal certificate store. It’s important to note that your IIS server may still be serving the old certificate despite it being deleted.