博客 (105)

最理想的部署方式是 ClickOnce,但是证书问题会导致安装时提示:

 

Windows 已保护你的电脑

Windows SmartScreen 筛选器已阻止启动一个未识别的应用。运行此应用可能会导致你的电脑存在安全风险。

 

 

这需要一个从 CA 获取的数字证书(http://www.doc88.com/p-785388554071.html)

 

 

百科:                                 http://baike.baidu.com/view/1390498.htm

ClickOnce 部署教程:            http://www.cnblogs.com/weixing/p/3358740.html

Makecert.exe(证书创建工具): https://msdn.microsoft.com/zh-cn/library/bfsktky3.aspx

如何:为 ClickOnce 应用程序向客户端计算机添加一个受信任的发行者:https://msdn.microsoft.com/zh-cn/library/ms172241.aspx

 

执行命令:makecert -r -n "CN=嗨秒网" -sv himiao.pvk himiao.cer

 

Password: LRQelk0l****************FTtJvufI

 

-r                创建自我签名证书。

-n  name         指定主题的证书名称。 此名称必须符合 X.500 标准。 最简单的方法是在双引号中指定此名称,并加上前缀 CN=;例如,-n "CN=myName"。

-sv  pvkFile     指定主题的 .pvk 私钥文件。 如果该文件不存在,系统将创建一个。

 

 

执行命令:Cert2spc himiao.cer himiao.spc

 

执行命令:pvk2pfx -pvk himiao.pvk -spc himiao.spc -pfx himiao.pfx -pi LRQelk0l****************FTtJvufI –po LRQelk0l****************FTtJvufI –f

 

xoyozo 10 年前
5,106

《SQL Server 2012 数据库服务搭建流程》

安装 .net 3.5 并重启!

知识一、安装,选 64 位版本,安装功能:
    实例:数据库引擎服务及子项全选,其它暂时用不到
    共享:管理工具-完整
知识NN、若实例安装到其它磁盘,确保目录有“NETWORK SERVICE”权限!!!
知识二、卸载,参:http://technet.microsoft.com/zh-cn/library/hh231731.aspx
    必须严格按照说明卸载,否则会出现卸载不干净,重装装不上的问题。
    若不幸遇上 0x851A001A,参:http://social.msdn.microsoft.com/Forums/zh-CN/8f4d5cf8-4ab8-4a37-81df-7c294f994515/sql-server-2012-install-error-851a001a
    用户名好像是:NT Service\MSSQLSERVER
知识三、18456错误:
    服务器身份验证:SQL Server 和 Windows 身份验证模式
    具体设置在:SSMS - Windows 身份验证模式 登录后 - 对象资源管理器 - 选中当前服务器 - 右键属性 - 安全性
    SQL Server 配置管理器 - SQL Server 服务 - 重启
知识四、修改端口:
    SQL Server 配置管理器 - SQL Server 网络配置 - 相应实例的协议 - TCP/IP - IP 地址 - 将所有1433改掉
    SQL Server 配置管理器 - SQL Server 服务 - 重启
知识五、sa - 登录 - 禁用
知识六、维护计划:
    开启 SQL Server 代理,并在服务里设置自动(延时)
    SSMS - 当前服务器 - 管理 - 维护计划 - 右键 维护计划向导 每天4:03:02
    工具箱-拖入:收缩数据库-重新组织索引-重新生成索引-更新统计信息-清除历史记录-备份数据库(完整)-“清除维护”任务

    编辑每项任务,在“所有用户数据库”中勾选“忽略未处理联机状态的数据库”,这是关键,如果不勾选,一旦某个数据库被设置为脱机,备份就会出错。

    在新建的维护计划上右键,执行,完成以后,右键“查看历史记录”,如有错误作相应修改
    完整备份+差异备份方式:http://www.cnblogs.com/zhangq723/archive/2012/03/13/2394102.html 从“下面我来讲一下”开始做

需要开放远程连接的,在防火墙设置允许通过的程序,如:
D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn\sqlservr.exe




创建或还原数据库

一、(还原时)改:
    常规 - 目标 - 数据库(B)
    文件 - 表格“还原为”列 - 改文件名如:dbTest.mdf / dbTest_log.ldf
二、(还原时)dbTest - 安全性 -  用户 - 删除原用户,默认那些用户不要删
三、(还原后)属性 - 文件 - 数据库文件 - 逻辑名称,初始大小全是0
    如不需要日志,则:属性 - 选项 - 恢复模式 - 简单
四、安全性 - 登录名 - 新建登录名:
    常规 - 填写登录名 - SQL Server 身份验证 - 取消“强制实施密码策略” - 默认数据库
    用户映射 - 映射对应数据库 - 勾:db_owner / public (若只读则勾:db_datareader / public)
    用户映射确定后再检查一次,第一次有可能未设置成功

xoyozo 11 年前
5,768

最小化安装 CentOS 6.4,配置网络

一条一条执行:
yum -y update
yum -y install wget
yum -y install vim
yum -y install screen
screen -S lnmp

安装 LNMP:http://lnmp.org/install.html
下载安装一条龙

不要升级各软件,以防不测

PHP 防跨站:执行一段命令,替换 vhost.sh 文件,以后添加网站就会自动添加 HOST 防跨站、跨目录的配置

更改数据库路径(/home/mysql/var)
http://bbs.vpser.net/thread-1558-1-1.html 第20条
端口(为了 pureftpd 能安装成功,还是不要改端口了)

防火墙加端口
vim /etc/sysconfig/iptables
service iptables restart

FreeTDS:使 php 支持 mssql

安装 PureFTPd
添加FTP用户时,UID和GID必须>1000,譬如添加一个xWeb组和用户:
groupadd -g 2000 xWeb
useradd -u 2000 -g xWeb -s /sbin/nologin -M userDefault
useradd -u 2001 -g xWeb -s /sbin/nologin -M userFang
useradd -u 2002 -g xWeb -s /sbin/nologin -M user2
useradd -u 2003 -g xWeb -s /sbin/nologin -M user3
然后 chown xUser:xWeb -R /home/wwwroot/网站目录
这样PHP木马就不能上传。非www用户每站一个,防止跨站
要写入的目录chown为www用户,这样PHP能创建目录及上传文件,允许公共写入,使FTP能操作写入(未验证PHP创建的新目录FTP有没有写入权限,即继承),所有要写入的目录必须 deny all

chown userFang:xWeb -R /home/wwwroot/fang.eyuyao.com/
chown www:www -R /home/wwwroot/fang.eyuyao.com/uploads/
chown www:www -R /home/wwwroot/fang.eyuyao.com/eyy/src/
chown www:www -R /home/wwwroot/fang.eyuyao.com/index/Runtime/
chown www:www -R /home/wwwroot/fang.eyuyao.com/admin/Runtime/
—————————————————————————————————
#设置目录不允许执行PHP(其实是使符合正则的路径不可读)
#找到网站的 .conf 配置文件,在 location ~ .*\.(php|php5)?$ 的上面插入:
location ~ /upload/.*\.(php|php5)?$
    {
        deny    all;
    }

#支持 ThinkPHP(使用 rewrite)
location ~ /index\.php/.*$
    {
        if (!-e $request_filename) { 
            rewrite  ^/index\.php(/.*)$  /index.php?s=$1  last;
            break;
        }
    }
—————————————————————————————————
重启 LNMP    /root/lnmp restart
重启 MySQL    /etc/init.d/mysql restart
重启 PureFTPd    /root/pureftpd restart
查看 Nginx 版本    nginx -V
查看 MySQL 版本    mysql -V
查看 PNP 版本    php -v
查看 Apache 版本    httpd -v
查内存        cat /proc/meminfo
php.ini        vim /usr/local/php/etc/php.ini
iptables 路径    /etc/sysconfig/iptables
MySQL 配置文件    vim /etc/my.cnf
添加网站        /root/vhost.sh
添加ProFTPd用户    /root/proftpd_vhost.sh
—————————————————————————————————
遇到问题:
中文URL问题解决方案,FTP用强制UTF-8,单个文件传。否则在win下打包的zip在linux下解压后,编码不是utf-8,导致打开URL 404
能用记事本打开的文件若包含中文,应另存为 utf-8 编码。

ThinkPHP 项目修改配置文件后,必须删除 /index/Runtime/* 缓存文件!!!

xoyozo 12 年前
5,407

问题描述:
当我们的界面需要在程序运行中不断更新数据时,当一个textbox的数据需要变化时,为了让程序执行中不出现界面卡死的现像,最好的方法就是多线程来解决
一个主线程来创建界面,使用一个子线程来执行程序并更新主界面
这样就不会出现卡死的现像了
这肯定是没有问题的,
但是为什么在使用的过程中一样会有很多地方会出现卡死呢,而且有用户跟我说是我的Httphelper类的问题,其实不是,而且我再次声明我的Httphelper类跟多线程并没有关系。不要在诬赖我了哦。
这个问题其实也困或了我很久,但是今天终于解决了,而且我发现很多人有这样的问题,所以我分享一个例子方便大家参考吧。
先来看看我的界面
QQ截图20130606143040.jpg
当我单击
开始执行后
QQ截图20130606143107.jpg
这个时候界面是不会卡死的,
只是数据在不断的更新
下面看看我的代码

[C#]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //创建一个委托,是为访问TextBox控件服务的。
        public delegate void UpdateTxt(string msg);
        //定义一个委托变量
        public UpdateTxt updateTxt;

        //修改TextBox值的方法。
        public void UpdateTxtMethod(string msg)
        {
            richTextBox1.AppendText(msg + "\r\n");
            richTextBox1.ScrollToCaret();
        }

        //此为在非创建线程中的调用方法,其实是使用TextBox的Invoke方法。
        public void ThreadMethodTxt(int n)
        {
            this.BeginInvoke(updateTxt, "线程开始执行,执行" + n + "次,每一秒执行一次");
            for (int i = 0; i < n; i++)
            {
                this.BeginInvoke(updateTxt, i.ToString());
                //一秒 执行一次
                Thread.Sleep(1000);
            }
            this.BeginInvoke(updateTxt, "线程结束");
        }
        //开启线程
        private void button1_Click(object sender, EventArgs e)
        {
            Thread objThread = new Thread(new ThreadStart(delegate
            {
                ThreadMethodTxt(Convert.ToInt32(textBox1.Text.Trim()));
            }));
            objThread.Start();
        }

        private void Form1_Load_1(object sender, EventArgs e)
        {
            //实例化委托
            updateTxt = new UpdateTxt(UpdateTxtMethod);
        }
    }
}


就这些代码,大家看注释应该就明白一点了,
主要是使用一个委托来更新界面的richTextBox1
这样写是肯定没有问题的,而且在我其它的更高级一点的例子里也是这么写的
C#多线程|匿名委托传参数|测试网站压力--升级版
http://www.sufeinet.com/thread-13-1-1.html
上面的文件大家可以做为参考
那问题现在那里呢,其实就出在这一句上

[C#]
this.BeginInvoke(updateTxt, "线程结束");


大家也许已经发现了,我是这样写的,而不是

[C#]
updateTxt("线程结束");


这样来直接在子线程中使用,
我相信有很多同志都是这样写的,其实错就错在这里
如果直接使用

[C#]
updateTxt("线程结束");


大家想一下应该就明白了,
updateTxt是在主线程创建的,而我们在子线程中直接使用,运行的数据多了,就会出现卡死,这是界面信息堵死的原因,
所以就算是委托也不能直接在子线程中使用,而是要使用BeginInvoke方法来调用这个委托
这样才不会出现卡死的现像。
问题就解决了。
大家支持一下哦
下面是我的源码提供给大家下载吧
WindowsFormsApplication3.zip (49.65 KB)

转自 苏飞 9 年前
4,935

如果使用了 loop 属性,那么视频播放结束时不会触发 onended 事件。

如果使用了 loop 属性,则任何时候获取 ended 值都是 false;如果不使用 loop,但在 onended 事件中重新 play()(或者在添加了属性 autoplay 的情况下更换 src 值),那么中间会有大概 3 毫秒的时间拿到的 ended 值是 true。

播放过程中更改 src 值并不会触发 onended 事件,因为还没有播放结束。如果设了 autoplay,那么更改 src 值后会自动播放,播放结束后仍然会触发 onended(前提是没有设置 loop)。

更多请参考:

http://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp

http://www.w3school.com.cn/html5/html5_video.asp

xoyozo 9 年前
4,807

WinForms 中嵌入 WebBrowser 默认是以 IE7 的兼容性视图渲染的,只要在网页的 <head /> 标签里加上:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

就能以安装的最新内核渲染,这样就能用到 HTML5 的新功能啦!

xoyozo 9 年前
3,757

用了 <colgroup>,你就不需要在一列或多列中的每个 <td> 重复地写样式了,html5 中 <colgroup> 仅留下了 span 属性,再配合 style 使用,会让你的代码更简洁。

W3School 传送门:http://www.w3school.com.cn/html5/html5_colgroup.asp

xoyozo 9 年前
5,004

准备:

先把超时时间改成 300 秒,参 http://www.cnblogs.com/jackluo/p/3366612.html

了解一下分表基本原理:http://www.discuz.net/thread-2132691-1-1.html

 

主题分表:
    可以任意创建主题存档表(forum_thread_X)
    使用“主题移动”功能,筛选符合条件的主题,移动到主题存档表
    新发表的主题仍然存于原始表(forum_thread)
    移动到存档表中的主题,会在主题所在的版块下建立一个存档区,通过存档区可浏览存档表中的主题。
    存档表中的主题,只供浏览,不可回复、评分,不能进行管理操作,但可以删除和移动到非存档区。

帖子分表:
    帖子没有存档的概念
    可以任意创建帖子分表(分表时创建新表或选择已存在分表)
    一次分表操作可移动100MB的整数倍数据
    根据主题表中最后回复时间正序排列的主题(first=1)tid 来获取帖子数据的
    并将该主题的所有帖子移到目标表中
    更新主题表中 posttableid 这个字段,来标识帖子的存储表

关闭论坛
关闭论坛监控
关闭数据库自动备份
主题先不分
第一个 100MB 用了 75 分钟,后来发现问题,数据库恢复了一下
然后1G用了1个半小时,估计恢复的时候顺便“优化”了

转移后打开帖子提示“没有找到帖子”,或者优化后打开帖子提示“没有找到帖子”,只要在数据库里“修复”一下就行了。(在Navicat“对象”中选中所有表,右键分析)

xoyozo 9 年前
6,383

升级“微信登录 1.1.6”插件后,发现微社区发帖提示“抱歉,您的请求来路不正确或表单验证串不符,无法提交”,查看更新日记发现微社区域名更换为 wsq.discuz.com,导致表单验证不通过的原因就是它了。

解决方法是打开:\source\class\helper\helper_form.php

找到:'http://wsq.discuz.qq.com', 24

或:'http://wsq.discuz.qq.com/', 25

替换为:'http://wsq.discuz.com/', 22

然后清空目录:\data\cache\qrcode\

至于帖子分享给朋友或朋友圈的标题和图片不正常的问题,目前还没有办法解决,听说是该插件要收费的节奏,具体可以参与官方讨论:

http://www.discuz.net/forum-2-1.html

另外,如果发现微社区里的用户头像或表情不能正常显示,一般是由于做了防盗链引起的,只要在白名单里加上 *.discuz.com 就行了

xoyozo 9 年前
5,603

微信是一个生活方式,朋友圈是用户分享和关注朋友们生活点滴的空间,微信公众平台是一个企业、机构与个人用户之间交流和服务的平台。一直以来,微信致力于为用户提供绿色、健康的网络生态环境。通过《微信公众平台服务协议》、《微信公众平台运营规范》和《微信开放平台开发者服务协议》等相关协议及专项规则,微信公众平台和微信开放平台的内容得到了良好的管理。为了进一步优化微信用户的使用体验,更好地保障微信用户合法权益,现将非由微信公众平台产生(即域名地址不归属于微信公众平台)且在微信内传播的外部链接内容相关管理规范进行公示。

对于违反本规范的内容,一经发现将立即进行处理,包括但不限于停止链接内容在朋友圈继续传播、停止对相关域名或IP地址进行访问、屏蔽相关链接等。由微信公众平台或开放平台帐号施行或者发起的,一经查实,前述帐号、主体也将按照微信相关规则进行处罚,包括但不限于限制或禁止使用部分或全部功能、帐号封禁直至注销等,并公告处理结果;微信也有权依照本规范及相关协议、专项规则的规定,拒绝再向前述主体提供服务。

具体规则及相关处罚如下:

  1. 诱导分享类内容

    1. 1.1 要求用户分享,分享后方可进行下一步操作,分享后方可知道答案等;

    2. 1.2 含有明示或暗示用户分享的文案、图片、按钮、弹层、弹窗等的,如:分享给好友、邀请好友一起完成任务等;

    3. 1.3 通过利益诱惑,诱导用户分享、传播外链内容或者微信公众帐号文章的,包括但不限于:现金奖励、实物奖品、虚拟奖品(红包、优惠券、代金券、积分、话费、流量、信息等)、集赞、拼团、分享可增加抽奖机会、中奖概率,以积分或金钱利益诱导用户分享、点击、点赞微信公众帐号文章等;

    4. 1.4 用夸张言语来胁迫、引诱用户分享的。包括但不限于:“不转不是中国人”、“请好心人转发一下”、“转发后一生平安”、“转疯了”、“必转”、“转到你的朋友圈朋友都会感激你”等;

      若内容中包含以上情况,一经发现,立即停止链接内容在朋友圈继续传播、停止对相关域名或IP地址进行的访问,短期封禁相关开放平台帐号或应用的分享接口;对于情节恶劣的情况,永久封禁帐号、域名、IP地址或分享接口。 

  2. 诱导关注类内容

    1. 强制或诱导用户关注公众帐号的,包括但不限于关注后查看答案、领取红包、关注后方可参与活动等;

      若内容中包含以上情况,一经发现,立即停止链接内容在朋友圈继续传播、停止对相关域名或IP地址进行的访问;对于情节恶劣的情况,永久封禁帐号、域名、IP地址。 

  3. H5游戏、测试类内容

    1. 以游戏、测试等方式,吸引用户参与互动的,具体形式包括但不限于比手速、好友问答、性格测试,测试签、网页小游戏等;

      若内容中包含以上情况,一经发现,立即停止链接内容在朋友圈继续传播、停止对相关域名或IP地址进行的访问;对于情节恶劣的情况,永久封禁帐号、域名、IP地址。 

  4. 欺诈类内容

    1. 4.1 虚假红包、活动

      通过虚假的红包、活动等形式,以赚取现金、实物奖品、虚拟奖品等方式欺骗用户参与的,具体形式包括但不限于虚假现金红包、虚假话费卡、虚假流量红包、虚假优惠券、虚假优惠活动等; 

    2. 4.2 宣传或销售侵害他人合法权益的商品

      通过虚假宣传、恶意营销等方式,向用户宣传或诱骗用户购买侵害他人合法权益的物品的,例如以骗取邮费为目的的赠送物品活动、虚假付费服务等; 

    3. 4.3 仿冒微信公众帐号排版、域名

      仿冒微信公众帐号文章排版、域名,可能造成微信用户混淆的;

      若内容中包含以上情况,一经发现,立即永久封禁帐号、域名、IP地址。 

  5. 谣言类内容

    1. 发送不实信息,制造谣言,可能对他人、企业或其他机构造成损害的,例如自来水有毒、香蕉致癌、小龙虾不能吃等;

      若内容中包含以上情况,一经发现,立即停止链接内容在朋友圈继续传播、停止对相关域名或IP地址进行的访问、短期封禁相关开放平台帐号或应用的分享接口;对于情节恶劣的情况,永久封禁帐号、域名、IP地址; 

  6. 骚扰信息、广告信息及垃圾信息

    1. 传播骚扰、欺诈、垃圾广告等信息的,包括但不限于虚假中奖类信息,不符合国家相关法律法规的保健品、药品、食品类信息,假冒伪劣商品信息,虚假服务信息,虚假网络货币等;

    2. 若内容中包含以上情况,一经发现,立即停止链接内容在朋友圈继续传播、停止对相关域名或IP地址进行的访问;对于情节恶劣的情况,永久封禁帐号、域名、IP地址。 

  7. 题文不符、内容低俗的信息

    1. 7.1 题文不符的信息

      故意拟制耸动标题,或以明显倾向性、误导性、煽动性的标题吸引他人点击的,即俗称“标题党”; 

    2. 7.2 内容低俗的信息

      涉及性器官、性行为、性暗示的,传播低级趣味、庸俗、有伤风化内容的,或者宣扬暴力、恶意谩骂、侮辱他人内容的,例如:传播走光、偷拍、露点、一夜情、换妻、性虐待、情色动漫、非法性药品广告和性病治疗广告、推介淫秽色情网站等;

      若内容中包含以上情况,一经发现,立即停止链接内容在朋友圈继续传播、停止对相关域名或IP地址进行的访问;对于情节恶劣的情况,永久封禁帐号、域名、IP地址。 

  8. 非法获取用户数据、信息

    1. 未经用户明确同意,并向用户如实披露数据用途、使用范围等相关信息的情形下复制、存储、使用或传输用户数据的,包括但不限于要求用户共享个人信息(手机号、出生日期等)才可使用其功能,或收集用户密码或者用户个人信息(包括但不限于,手机号,身份证号,生日,住址等);

    2. 若内容中包含以上情况,一经发现,立即停止链接内容在朋友圈继续传播、停止对相关域名或IP地址进行的访问,短期封禁相关帐号;对于情节恶劣的情况,永久封禁帐号、域名、IP地址。

  9. 其它违反国家法律法规的内容,包括但不限于:

    1. (1) 违反宪法确定的基本原则的;

    2. (2) 危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;

    3. (3) 损害国家荣誉和利益的;

    4. (4) 煽动民族仇恨、民族歧视,破坏民族团结的;

    5. (5) 破坏国家宗教政策,宣扬邪教和封建迷信的;

    6. (6) 散布谣言,扰乱社会秩序,破坏社会稳定的;

    7. (7) 散布淫秽、色情、赌博、暴力、恐怖或者教唆犯罪的;

    8. (8) 侮辱或者诽谤他人,侵害他人合法权益的;

    9. (9) 煽动非法集会、结社、游行、示威、聚众扰乱社会秩序;

    10. (10) 以非法民间组织名义活动的;

    11. (11) 含有法律、行政法规禁止的其他内容的。

    12.  

      若内容中包含以上情况,一经发现,立即停止链接内容在朋友圈继续传播、停止对相关域名或IP地址进行的访问,短期封禁相关帐号;对于情节恶劣的情况,永久封禁帐号、域名、IP地址。

申诉及常见问题可查看:http://kf.qq.com/faq/131117ne2MV7141117JzI32q.html

微信团队请用户主动遵守上述条款,也欢迎用户对违反微信链接类内容管理规范的内容进行投诉,一经核实,微信团队将立即按照规范进行处理。让我们共同创建并维护和谐的微信生态!

 

微信团队

转自 微信团队 9 年前
4,216