如何用Windows Server 2008 R2 单网卡搭建VPN? 今天上午做了个详细图解教程,希望对大家有所帮助! 开始! 找一台安装Windows Server 2008 r2的服务器 第一步:安装角色 添加角色 把网络策略和访问服务打上勾号 在角色服务里按图打上勾号,点下一步 点击安装,等待安装完成 点击关闭,完成安装 第二步:配置路由和远程访问 在开始菜单中-->管理工具中找到“路由和远程访问” 如图:右键选择“配置并启用路由和远程访问” 选择自定义配置 全部打上勾号,并下一步 点“完成” 点“确定”,并等待完成配置 完成好配置如下 右键NAT,选择新增接口 选择“本地连接” 选择公用接口到专用网络 按图示操作 按图中步骤,添加的IP地址数,按您的实际要求填写 第三步:配置网络策略服务 按图中找到“网络策略服务器” 网络策略中的红叉的行,右键选择属性,再选择授予访问权限,并点击确定。 第四步:添加VPN账号密码 打开“服务器管理器” 按图示添加VPN的账号密码 第五步:本地安全策略的设置 本步骤是为服务器安全,以网址随便登录桌面和远程桌面。 打开“本地安全策略和组” 按图示步骤一步一步操作,一共是两项,拒绝本地登录和拒绝通过远程桌面服务登录。 完成后如图示 这样整合VPN的安装配置就完成了,快去找一台电脑测试下吧! from:http://www.min68.com/archives/WinddowsServer2008r2danwangkavpndajian.html
View Details008架设vpn服务器完毕,新建账户,分配了静态IP地址, 但是客户端拨号后获取了另一个IP 怎么才能给客户端指定IP,这里就为大家分享一下 自己解决了,具体如下 1、开启NPS, 2、创建并配置策略 (备注:本人新建账户均归属guests,故选择用户组添加“GUESTS”) 主要就是下面红框框一定要勾上 操作完毕,解决 from:https://www.jb51.net/article/103056.htm
View Details开启super权限: 1. update user set Super_priv=‘Y’ where User=‘root’ 2. flush privileges from:https://www.cnblogs.com/xiaoit/p/4415754.html
View DetailsWin2008系统和win7以上版本管理用户都是在,计算机管理、服务器管理器里面点击配置—用户和组来管理用户。但是咗嚛突然发现服务器的2008系统没有了本地用户和组怎么办呢 组策略限制用户和组功能 出现这种情况一般是组策略做限制了,打开运行gpedit.msc打开组策略编辑器 依次点击,用户设置—管理模板—mircosoft管理控制台—受限制的许可管理单元— 右侧 【本地用和组】 把本地用户和组的设置,禁用状态设置为 启用,或者 未配置,然后确定 此外,如果你不记得在什么选项下面,可以直接点击。用户配置—所有设置,按照状态排序来查找 刷新策略 设置好之后,点击开始运行—gpupdate/force 刷新策略,让刚刚修改的生效 设置好之后,再次打开服务器管理器,计算机管理。查看已经有 本地用户和组了 其他可能原因 如果检查策略里面没有设置,说明您的操作系统版本的问题(家庭版或者普通版可能没有)。 开始菜单--输入 control userpasswords2 来调用账号管理菜单 同样的方法针对windows下其他xp以上版本都有效,如图。即可使用用户账号功能了 from:https://jingyan.baidu.com/article/54b6b9c0e04e172d583b4781.html
View Details每天更新一题 让大家在休息时间可以轻松学习! 下面是关于SQL的题目,每日更新~ (PS:大家要看清题号回答哦~需要答案的同学可以在下方留言题号,第一时间回复答案) 33.(2020年1月10日) 有如下一张表Orders 查询出每个发货单号(shipid),最早付款时间(paydate)和最小付款单号(payno) 结果如下: 考点:聚合函数和关联的灵活使用 32.(2020年1月9日) 表 point 保存了一些点在 X 轴上的坐标,这些坐标都是整数。 写一个查询语句,找到这些点中最近两个点之间的距离。 最近距离显然是 '1' ,是点 '-1' 和 '0' 之间的距离。所以输出应该如下: 注意:每个点都与其他点坐标不同,表 table 不会有重复坐标出现。 考点:题目看似简单,谨防陷阱 32.(2020年1月8日) 怎么把下面的表(tab) 查成这样1个结果 考点:行列转换 31.(2020年1月7日) 有如下一组数据 求出NAME中每组累加/每组总数的比例大于0.6的ID和NAME 预期的结果应该为 解释:从题目意思可以看出A组的总数为16,从ID为1到5分别累加后的结果分别为1,3,9,13,16,只有13和16除以总数16才大于0.6,所以返回的结果ID为4和5,同样B组为7和8 30.(2020年1月6日) 有如下一张 Activity 表: 其中games_played是玩家登陆玩的游戏数量, 查询每个玩家每天累计玩的游戏数量有多少?结果如下: 解释:玩家1第一次玩了5个,所以是5,第二次是6个,所以累计就是5+6=11, 第三次是1个,累计就是5+6+1=12 玩家2类似 29.(2020年1月3日) 写一条 SQL 查询语句,从 Customer 表中查询购买了 Product 表中所有产品的客户的 id。示例:Customer 表: Product 表: Result 表: 购买了所有产品(5 和 6)的客户的 id 是 1 和 3 。 28.(12月31日) 有如下几张表: Student Course SC 查询"01 "课程比" 02 "课程成绩高的学生的信息及课程分数? P.S. 题目较简单,希望大家能动手练习一下,锻炼自己逻辑思维能力。 27.(12月30日) 有一张成绩表SC,表结构为SC(StuID,CID,Course),分部对应是学生ID,课程ID和学生成绩,有如下测试数据 查询出既学过’001’课程,也学过’003’号课程的学生ID 预期结果为 26.(12月27日) 表 orders 定义如下:order_id(订单编号),customer_id(客户编号),order_date(下单日期) 有如下几条记录: […]
View Details核心代码return (T)(object)xxx; 示例代码如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
public static T GetUnitSettingById<T>(int id) where T : Setting { if (typeof(T).Equals(typeof(BodySetting))) { var body = BodySetting_table.Instance.GetEntityByPrimaryKey(id); if (body!=null) { return (T)(object)body; } } return null; } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
/// <summary> /// 从DataRow里获取指定字段的值 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="row"></param> /// <param name="columnName"></param> /// <returns></returns> private T GetValue<T>(DataRow row, string columnName) { var resultObj = new object(); switch (typeof(T).Name.ToLower()) { case "int32": var numInt = 0; if (row.Table.Columns.Contains(columnName)) int.TryParse(row.Field<string>(columnName), out numInt); resultObj = numInt; break; case "int64": var numLong = 0l; if (row.Table.Columns.Contains(columnName)) long.TryParse(row.Field<string>(columnName), out numLong); resultObj = numLong; break; case "decimal": var numDecimal = 0m; if (row.Table.Columns.Contains(columnName)) decimal.TryParse(row.Field<string>(columnName), out numDecimal); resultObj = numDecimal; break; case "string": resultObj = row.Table.Columns.Contains(columnName) ? row.Field<string>(columnName) : string.Empty; break; case "datetime": var outDatetime = new DateTime(); if (row.Table.Columns.Contains(columnName)) DateTime.TryParse(row.Field<string>(columnName), out outDatetime); resultObj = outDatetime; break; } return (T)resultObj; } |
参考:https://blog.csdn.net/iningwei/article/details/88978598
View Details示例1:将语句 test this sentence 转为大写 查找:^.*$ 替换:\U$0 或———— 查找:^(.*)$ 替换:\U\1 或 \U$1 示例2:将语句 TEST THIS SENTENCE 转为小写 查找:^.*$ 替换:\L$0 或———— 查找:^(.*)$ 替换:\L\1 或 \L$1 示例3:将语句 test this sentence 首字t母转为大写 查找:^. 替换:\U$0 或———— 查找:^(.) 替换:\U\1 或 \U$1 示例4:将语句 Test this sentence 首字T母转为小写 查找:^. 替换:\L$0 或———— 查找:^(.) 替换:\L\1 或 \L$1 示例5:将语句 test this sentence 每个单词首字母转为小写 查找:\b(\w)(\w*)\b 替换:\U$1\E$2 或 \U\1\E\2 总结: 1、\U 将匹配项转为大写(Upper) 2、\L 将匹配项转为小写(Lower) 3、\E 终止转换(End) from:https://www.cnblogs.com/njl041x/p/9626509.html
View Details问题如下: 比如上图中的PERSON表,查询SQL语句中如果表名是小写,就会报错说person表不存在。 因为Linux环境下的MySQL数据库的表名默认是区分大小写的,可以查看Linux上的MySQL的配置文件/etc/my.cnf:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
[root@VM_219_131_centos tomcat7]# cat /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [root@VM_219_131_centos tomcat7]# |
如果要使用数据库表名不区分大小写的话,就需要在[mysqld]下面添加一行配置,即 lower_case_table_names=1:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
[root@VM_219_131_centos tomcat7]# vi /etc/my.cnf [mysqld] lower_case_table_names=1 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid |
网上对该项配置的说明:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
lower_case_table_names参数详解: 其中 0:区分大小写,1:不区分大小写 MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的: 1、数据库名与表名是严格区分大小写的; 2、表的别名是严格区分大小写的; 3、列名与列的别名在所有的情况下均是忽略大小写的; 4、变量名也是严格区分大小写的; MySQL在Windows下都不区分大小写。 3、如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种: A、创建时设置: CREATE TABLE T( A VARCHAR(10) BINARY ); B、使用alter修改: ALTER TABLE`tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY; C、mysql tableeditor中直接勾选BINARY项。 |
修改完配置之后,一定要重启数据库:
|
1 2 3 |
[root@VM_219_131_centos tomcat7]# service mysqld restart Stopping mysqld: [ OK ] Starting mysqld: [ OK ] |
然后使用Navicat工具重新连接MySQL数据库,再次查询perosn表,这时发现不管查询SQL语句中的表名是大写还是小写都提示找不到person表了。 原因是修改配置之后,会导致原来的大写的表名PERSON无法识别,所以这一点要特别注意。 解决办法是: (1)在修改配置之前一定先将所有表的表结构和表数据导出做备份; (2)删除原来的表; (3)修改配置; (4)将表结构和表数据导入。 按照上面的步骤操作之后,再次查询person表,表名就不区分大小写了。 from:https://www.cnblogs.com/jun1019/p/7073227.html
View Details光子:最常见的原因是权限的问题,比如你的log目录没有写入权限,有时可能还要给“完全控制”的权限。 ============================================================================ log4net不输出日志文件主要有以下几个原因: 1 没有在AssemblyInfo文件中添加下面的代码:
|
1 |
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] |
2 运行程序目录下没有log4net.config配置文件。 解决方法有两种: 手动将log4net.config复制到运行程序 选择解决方案中的log4net.config,在属性–>复制到输出目录,选择始终复制。 3 运行程序目录下没有log4net.dll文件。 解决方案: 手动复制,一般不会出现。 4 log4net的net framework版本与运行程序的版本不一致。 如果在调试中出现以下提示:
|
1 2 3 4 5 |
引发的异常:“log4net.Appender.FileAppender.LockingStream.LockStateException”(位于 log4net.dll 中) 引发的异常:“System.InvalidOperationException”(位于 System.dll 中) 引发的异常:“System.IO.PathTooLongException”(位于 mscorlib.dll 中) 引发的异常:“System.IO.PathTooLongException”(位于 mscorlib.dll 中) 引发的异常:“log4net.Appender.FileAppender.LockingStream.LockStateException”(位于 log4net.dll 中) |
就很有可能是这个原因。 解决方案: 更改log4net版本或者运行程序的net framework版本。 5 log4net.config的配置文件中有错误。 解决方案: 这个问题最难解决,因为你必须要仔细检查每一个设置点。例如我有一次就无法输出日志,最后发现,file节点配置如下:
|
1 |
<file value="\\Log\\Common\\"/> |
更改为
|
1 |
<file value="Log\\Common\\"/> |
期待的日志就出现了。因此,如果前面确定都没有问题的话,你就应该仔细检查一下你的配置文件了。 from:https://blog.csdn.net/sgmcumt/article/details/83021616
View DetailsWSL 子系统是基于 LxssManager 服务运行的。 只需要将 LxssManager 重启即可。 可以做成一个 bat 文件。 net stop LxssManager net start LxssManager from:https://www.cnblogs.com/F4NNIU/p/10015183.html
View Details