月度归档:2012 年七月

windows server 2008 设置远程桌面多人同时登录

1.gpedit.msc打开组策略,依次展开“计算机配置”->”管理模板”->”Windows组件”->”远程桌面服务”->”远程桌面会话主机”->”连接”->”限制连接的数量”

策略编辑器

2.在打开的窗口设置允许的最大连接数

启用连接数

3.然后,依次打开“开始”->”管理工具”->”远程桌面服务”->”远程桌面会话主机配置”,取消选择“限制每个用户只能进行一个会话”

取消同一用户多个连接限制

解决winform窗体的topmost不管用的问题

[csharp]
[DllImport("user32", EntryPoint = "SetWindowPos")]
private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndlnsertAfter, int X, int Y, int cx, int cy, int flags);

int x = Screen.PrimaryScreen.WorkingArea.Right – this.Width;
int y = Screen.PrimaryScreen.WorkingArea.Bottom – this.Height;
//this.Location = new Point(x, y);//设置窗体在屏幕右下角显示
//AnimateWindow(this.Handle, 1000, AW_SLIDE | AW_ACTIVE | AW_VER_NEGATIVE);

SetWindowPos(this.Handle, new IntPtr(-1), x, y, this.Width, this.Height, 0);

[/csharp]

病毒式传播的八种方式【转】

想想Facebook、linkedIn、Youtube、Dropbox和Skype都有什么共同点?除了都非常成功之外,或许它们共同的特点就是能在快速增长过程中运用很有效的病毒式营销了。

至于这些公司是怎么做到的,来看看下面这八种方式吧。

1、天生的传播特性(Inherent virality)

这是最原始的一种病毒式传播,可以称得上是口碑效应。简单说就是如果你的产品足够好,自然会将你的用户转变为“传播者”。虽然刚开始这种传播效果并不明显,但经过一段时间后,就会出现爆炸性的增长,Skype就是最典型的例子。当然这种方式效果最好,但也较难实现。

2、协同效应传播(Collaboration virality)

这种传播是指虽然一个产品对单独一个用户来说是有价值的,但如果他推荐使用该产品的用户越多,这个产品对他来说产生的价值就会越大,那么使用者就会形成病毒式传播。比如Dropbox,你虽然可以用Dropbox存储文件,但如果可以和其他人共享文件,Dropbox就会给你带来更大的价值。

3、沟通效应传播(Communication virality)

这种情况一般会在交流工具中出现。通过某种交流工具(比如邮件),某个名称经常会在交流过程中出现,久而久之人们就会记住这个品牌。比如使用某种工具定期、群发、设定对象的发送邮件或微博时,人们收到的内容最后经常会有“由xx工具发送”类似的标注,这样人们就会不经意的记住这个产品。这也是一种病毒式传播,就像你经常会在别人的微博下看到“来自FaWave”、“来自36氪”一样。

4、激励效应传播(Incentivized virality)

这个其实很简单。比如你在一个网站上邀请了其他人加入进来的时候,系统会给你相应的奖励,就像Dropbox会给你增加空间、某些游戏会给你发放金币一样。这种策略虽然很简单,但屡试不爽,只要你不搞得原用户对此感到恶心就行。

5、可植入性传播(Embeddable virality)

这种病毒式营销非常适合内容性网站,比如以文章、视频、资料等为主要内容的网站。在这些内容里面,原创者会把原创信息植入进去,这样无论这些内容怎样传播,原创信息都会被用户看到。这看起来像是“软文”,但其实并不是软文。最简单的例子就是现在已经泛滥的“视频广告”,前面来一段感天动地、制作精良的短篇,最后来了个毫不相干的品牌名称(当然,有一些广告还是有关联的)。

6、签名式传播(Signature virality)

顾名思义,就是在传播本体最后加上一个签名。最常见的比如你做在线调查,最后生成调查报告时,通常会有一句“来自xxx调查网站”。或者当你看到信息图的时候,最后都会有一个“本信息图汉化来自36氪”的小图标。

7、社交化传播(Social virality)

这种传播依附现有的社交网络,当用户使用该产品的时候,社交网络会将相关信息显性或隐性地传播给其他用户。比如美国最大的社交网络游戏商Zynga就是通过这种方式,当你在玩某一游戏时,其他好友就会收到你正在玩这个游戏的信息,这样吸引新用户的速度就会变得更快。所以,这就是为什么很多网站会通过Facebook、微博等社交网络来授权注册账户。

8、话题性传播(Pure word of mouth virality)

注意,这不是单纯的口碑效应。当然,这里面有一些口碑效应的因素,但不全是。话题性传播是指人们愿意讨论这款产品或和这款产品相关的事件。比如你的产品确实很酷,或者出现了一个很值得人们讨论的话题,人们在讨论中便会记住你的产品或相关信息。但这种效果很难量化,因为如果话题只是该产品创始人的八卦信息的话,很难知道有多少人会因为这个八卦信息而使用你的产品。最后要注意的是,话题有好有坏。如果你制造的是反面话题的话,那就不是病毒式营销了,而是公关危机了。

如何量化病毒性传播

说完了上面这八种病毒式传播的方式,那我们该如何量化它呢?最懒最聪明的建议就是——不要去量化它。

但如果你真想计算这种传播的效果的话,首先你要知道一个值:“病毒系数”(Virality Coefficient)。一般了解病毒式营销的人都会知道,当病毒系数 >1时,才是真正的病毒式传播,因为这样的结果是你的用户数量会呈现指数性增长。

除了“病毒系数”外,很多人往往会忽略另一个重要的因素:“传播周期”(the cycle time),即一个用户完成一次病毒式传播的时间。因为即是病毒系数都是1.5,如果传播周期分别是1天和2天的话,未来也会出现巨大的差别。

看看上边Matrix Ventures的David Skok给出的公式,你或许就该知道如何计算它了。图中的K就是“病毒系数”,ct就是“传播周期”。

本文编译自36氪,原文地址

译文出处36氪,转载请注明出处链接。

重装win7后ubuntu无法启动[转]

用Ubuntu的安装CD,也就是Live CD从光驱启动,打开一个终端窗口,在里面输入如下命令:

sudo -i  (获得超级用户权限)
mount /dev/sda7 /mnt  (也就是你的Ubuntu的“/”的挂接硬盘分区,比如sda7,根据你的具体安装情况确定,/mnt是你建立的一个用来挂接的目录)

如果你单独划分了Ubuntu的boot分区,那么还需要做如下操作:
mount /dev/sda6 /mnt/boot (假设你的boot分区是在sda6)

挂载你其他的分区,如果有的话
重建grub到sda的mbr

grub-install --root-directory=/mnt /dev/sda

然后,重启,就应该可以了

无CD修复ubuntu启动项

本人是按下面方法解决的,已经成功。

我的linux在调整分区后,出现了grub rescue>
这表示grub2的配置文件坏了,由于分区调整或分区UUID改变造成GRUB2不能正常启动,从而进入修复模式(grub rescue)也称救援模式。

在救援模式下只有很少的命令可以用:
set  ,  ls , insmod , root , prefix

(1)set  查看环境变量,这里可以查看启动路径和分区。
(2)ls   查看设备
(3)insmod  加载模块
(4)root  指定用于启动系统的分区,在救援模式下设置grub启动分区
(5)prefix 设定grub启动路径

一、分区乱了,我不知道boot目录在什么地方了
ls  #查看一下设备状态
如图:
grub rescue救援模式的处理 – 汉斯的遗忘 – 汉斯的遗忘

grub rescue> ls (hd0,msdos3)
error: bad filename.
提示:错误的文件名,我在测试时发现必须是后面加一个/

grub rescue> ls (hd0,msdos3)/
./  ../  lost+found/

通过查看发现在(hd0,msdos1)/下有一个boot目录

二、设置grub的启动分区和路径
set root=(hd0,msdos1)  #设置grub启动分区
set prefix=(hd0,msdos1)/boot/grub/  #设置grub启动路径
查看一下设置情况:
grub rescue> set
prefix=(hd0,msdos1)/boot/grub
root=hd0,msdos1

三、加载基本模块
insmod /boot/grub/normal.mod  #加载基本模块

四、进入正常模式
normal  #进入正常模式,出现菜单,如果加载grub.cfg(错误的)可能出现问题,按shift可以出现菜单,之后按c键进入控制台
进入正常模式后就会出现grub>这样的提示符,在这里支持的命令就非常多了。

五、引导系统
set root=(hd0,msdos1)  #设置正常启动分区
linux /boot/vmlinuz ….  ro text root=/dev/sda1  #加载内核,进入控制台模式
initrd  /boot/initrd ….  #加载initrd.img
boot #引导

六、更新grub
安装:grub-install /dev/sda
更新:update-grub

CD修复ubuntu启动项

win7中病毒后,就得重装win7了,可重装win7后ubuntu10.10的启动项就不见了,现在在网上都是教如何用live cd来修复ubuntu10.10的启动项的,其实用论坛里smallapple改过的grldr就可以很简单的修复ubuntu10.10的启动项

第一步:下载grldr
下载地址:
download/file.php?id=79193

下载解压后把g2ldr.mbr和g2ldr放在C盘根目录下

第二步:新建一个boot.ini文件
写入如下内容:
C:\g2ldr.mbr=”ubuntu10.10″

第三步:重启
重启后就可以看到ubuntu10.10的启动项
选择ubuntu10.10启动项进入ubuntu10.10

第四步:用ubuntu的引导器来引导回win7
xhy@xhy-desktop:~$sudo grub-install /dev/sda

xhy@xhy-desktop:~$sudo update-grub

成功后你就重启进入win7,把C盘里刚放的g2ldr.mbr,g2ldr和boot.ini删除掉就OK了
到此就顺利的引导回你的ubuntu10.10了

用ubuntu10.04光盘启动电脑

1.在终端输入 sudo -i

2.查找你安装ubuntu在哪个分区 fdisk -l

我的部分输出如下:

Device Boot Start End Blocks Id System
/dev/sda1 * 1 5222 41945683+ 7 HPFS/NTFS
/dev/sda2 5223 58379 426975595 5 Extended
/dev/sda3 58379 60802 19465216 83 Linux
/dev/sda5 5223 9139 31463267+ 7 HPFS/NTFS
/dev/sda6 9140 19583 83891395+ 7 HPFS/NTFS
/dev/sda7 19584 30027 83891395+ 7 HPFS/NTFS
/dev/sda8 30028 38511 68147695+ 7 HPFS/NTFS
/dev/sda9 38512 48955 83891395+ 7 HPFS/NTFS
/dev/sda10 48956 54924 47945959 7 HPFS/NTFS
/dev/sda11 54925 55174 2008093+ 82 Linux swap / Solaris
/dev/sda12 55175 55305 1047552 b W95 FAT32
/dev/sda13 55305 57134 14685184 7 HPFS/NTFS
/dev/sda14 57134 58379 9999360 83 Linux

我ubuntu10.04根目录所在的分区就是/dev/sda3,如果你不确定的话就找id为83的。

以下代码请手动输入不要 复制 粘贴 不要图快 以免不必要的错误!
下面挂载原系统的根目录:
在终端中输入:mount /dev/sda3 /mnt(PS:空格不能少)
将 /dev/sda3挂载到了/mnt下,当然你也可以选其他地方。这里注意,如果你有单独为/boot分区的话,要单独挂载一次 /boot,比如说如果你原来的/boot挂载到/dev/sda12上了,那个你这里要再输入mount /dev/sda12 /mnt/boot。我这里没有把它单独分出来,所以就不需要了。

3. 输入 grub-install –root-directory=/mnt /dev/sda (PS:/mnt后面有一个空格,root前面两根线 且有一个空格)

4.这时只能用来引导Ubuntu 10.04,还暂时无法引导Windows 7,这时选择进入Ubuntu 10.04,再找到并启动终端,在终端输入如下命令:
sudo update-grub

admini@admini-laptop:~$ sudo update-grub

[sudo] password for admini:

Generating grub.cfg …

Found linux image: /boot/vmlinuz-2.6.32-25-generic

Found initrd image: /boot/initrd.img-2.6.32-25-generic

Found linux image: /boot/vmlinuz-2.6.32-24-generic

Found initrd image: /boot/initrd.img-2.6.32-24-generic

Found linux image: /boot/vmlinuz-2.6.32-21-generic

Found initrd image: /boot/initrd.img-2.6.32-21-generic

Found memtest86+ image: /boot/memtest86+.bin

Found Windows 7 (loader) on /dev/sda1

done

admini@admini-laptop:~$

转自:http://wenku.baidu.com/view/d797d43183c4bb4cf7ecd13e.html###

 

网站用户体验的76个要素

网站用户体验的76个要素
一、感官体验呈现给用户视听上的体验,强调舒适性
1. 设计风格:符合目标客户的审美习惯,并具有一定的引导性。
网站在设计之前,必须明确目标客户群体,并针对目标客户的审美喜好,进行分析,从而确定网站的总体设计风格。
2. 网站LOGO:确保logo的保护空间,确保品牌的清晰展示而又不占据过分空间。
3. 页面速度:正常情况下,尽量确保页面在5秒内打开。如果是大 型门户网站,必须考虑南北互通问题,进行必要的压力测试。
4. 页面布局:重点突出,主次分明,图文并茂。与企业的营销目标相结合,将目标客户最感兴趣的,最具有销售力的信息放置在最重要的位置。
5. 页面色彩:与品牌整体形象相统一,主色调+辅助色不超过三种颜色。以恰当的色彩明度和亮度,确保浏览者的浏览舒适度。
6. 动画效果:与主画面相协调,打开速度快,动画效果节奏适中,不干扰主画面浏览。
7. 页面导航:导航条清晰明了、突出,层级分明。
8. 页面大小:适合多数浏览器浏览(以15寸及17寸显示器为主)。
9. 图片展示:比例协调、不变形,图片清晰。图片排列既不过于密集,也不会过于疏远。
10. 图标使用:简洁、明了、易懂、准确,与页面整体风格统一。
11. 广告位:避免干扰视线,广告图片符合整体风格,避免喧宾夺主。
12. 背景音乐:与整体网站主题统一,文件要小,不能干扰阅读。要设置开关按钮及音量控制按钮。二、交互体验呈现给用户操作上的体验,强调易用/可用性
13. 会员申请:介绍清晰的会员权责,并提示用户确认已阅读条款。
14. 会员注册:流程清晰、简洁。待会员注册成功后,再详细完善资料。
15. 表单填写:尽量采用下拉选择,需填写部分需注明要填写内容,并对必填字段作出限制。(如手机位数、邮编等等,避免无效信息)
16. 表单提交:表单填写后需输入验证码,防止注水。提交成功后,应显示感谢提示。
17. 按钮设置:对于交互性的按钮必须清晰突出,以确保用户可以清楚地点击。
18. 点击提示:点击浏览过的信息颜色需要显示为不同的颜色,以区分于未阅读内容,避免重复阅读。
19. 错误提示:若表单填写错误,应指明填写错误之处,并保存原有填写内容,减少重复工作。
20. 在线问答:用户提问后后台要及时反馈,后台显示有新提问以确保回复及时。
21. 意见反馈:当用户在使用中发生任何问题,都可随时提供反馈意见。
22. 在线调查:为用户关注的问题设置调查,并显示调查结果,提高用户的参与度。
23. 在线搜索:搜索提交后,显示清晰列表,并对该搜索结果中的相关字符以不同颜色加以区分。
24. 页面刷新:尽量采用无刷新(AJAX)技术,以减少页面的刷新率。
Ajax是新兴的网络开发技术的象征。它将JavaScript和XML技术结合在一起,用户每次调用新数据时,无需反复向服务器发出请求,而是在浏览器的缓存区预先获取下次可能用到的数据,界面的响应速度因此得到了显著提升。
25. 新开窗口:尽量减少新开的窗口,以避免开过多的无效窗口,设置弹出窗口的关闭功能。
26. 资料安全:确保资料的安全保密,对于客户密码和资料进行加密保存。
27. 显示路径:无论用户浏览到哪一个层级,哪一个页面,都可以清楚知道看到该页面的路径。

三、浏览体验呈现给用户浏览上的体验,强调吸引性
28. 栏目的命名:与栏目内容准确相关,简洁清晰,不宜过于深奥。
29. 栏目的层级:最多不超过三层,导航清晰,运用JAVAscrip等技术使得层级之间伸缩便利。
30. 内容的分类:同一栏目下,不同分类区隔清晰,不要互相包含或混淆。
31. 内容的丰富性:每一个栏目应确保足够的信息量,避免栏目无内容情况出现。
32. 内容的原创性:尽量多采用原创性内容,以确保内容的可读性。
33. 信息的更新频率:确保稳定的更新频率,以吸引浏览者经常浏览。
34. 信息的编写方式:段落标题加粗,以区别于内文。采用倒金字塔结构。
35. 新文章的标记:为新文章提供不同标识(如new),吸引浏览者查看。
36. 文章导读:为重要内容在首页设立导读,使得浏览者可以了解到所需信息。文字截取字数准确,避免断章取义。
37. 精彩内容的推荐:在频道首页或文章左右侧,提供精彩内容推荐,吸引浏览者浏览。
38. 相关内容的推荐:在用户浏览文章的左右侧或下部,提供相关内容推荐,吸引浏览者浏览。
39. 收藏夹的设置:为会员设置收藏夹,对于喜爱的产品或信息,可进行收藏。
40. 栏目的订阅:提供Rss或邮件订阅功能
41. 信息的搜索:在页面的醒目位置,提供信息搜索框,便于查找到所需内容。
42. 页面打印:允许用户打印该页资料,以便于保存。
43. 文字排列:标题与正文明显区隔,段落清晰。
44. 文字字体:采用易于阅读的字体,避免文字过小或过密造成的阅读障碍。可对字体进行大中小设置,以满足不同的浏览习惯。
45. 页面底色:不能干扰主体页面的阅读。
46. 页面的长度:设置一定的页面长度,避免页面过长而影响阅读。
47. 分页浏览:对于长篇文章 进行分页浏览。
48. 语言版本:为面向不同国家的客户提供不同的浏览版本。
49. 快速通道:为有明确目的的用户提供快速入口。 ?

关注用户体验

四、情感体验呈现给用户心理上的体验,强调友好性
50. 客户分类:将不同的浏览者进行划分(如消费者、经销商、内部员工),为客户提供不同的服务。
51. 友好提示:对于每一个操作进行友好提示,以增加浏览者的亲和度。
52. 会员交流:提供便利的会员交流功能(如论坛),增进会员感情。
53. 售后反馈:定期进行售后的反馈跟踪,提高客户满意度。
54. 会员优惠:定期举办会员优惠活动,让会员感觉到实实在在的利益。
55. 会员推荐:根据会员资料及购买习惯,为其推荐适合的产品或服务。
56. 鼓励用户参与:提供用户评论、投票等功能,让会员更多地参与进来。
57. 会员活动:定期举办网上会员活动,提供会员网下交流机会。
58. 专家答疑:为用户提出的疑问进行专业解答。
59. 邮件/短信问候:针对不同客户,为客户定期提供邮件/短信问候,增进与客户间感情。
60. 好友推荐:提供邮件推荐功能。
61. 网站地图:为用户提供清晰的网站指引。

五、信任体验呈现给用户的信任体验,强调可靠性
62. 搜索引擎:查找相关内容可以显示在搜索引擎前列。
63. 公司介绍:真实可靠的信息发布,包括公司规模、发展状况、公司资质等。
64. 投资者关系:上市公司需为股民提供真实准确的年报,财务信息等。
65. 服务保障:将公司的服务保障清晰列出,增强客户信任。
66. 页面标题:准确地描述公司名称及相关内容。
67. 文章来源:为摘引的文章标注摘引来源,避免版权纠纷。
68. 文章编辑作者:为原创性文章注明编辑或作者,以提高文章的可信度。
69. 联系方式:准确有效的地址、电话等联系方式,便于查找。
70. 服务热线:将公司的服务热线列在醒目的地方,便于客户查找。
71. 有效的投诉途径:为客户提供投诉或建议邮箱或在线反馈。
72. 安全及隐私条款:对于交互式网站,注明安全及隐私条款可以减少客户顾虑,避免纠纷。
73. 法律声明:对于网站法律条款的声明可以避免企业陷入不必要的纠纷中。
74. 网站备案:让浏览者确认网站的合法性。
75. 相关链接:对于集团企业及相关企业的链接,应该具有相关性。
76. 帮助中心:对于流程较复杂的服务,必须具备帮助中心进行服务介绍。

C#安装程序制作让安装后的程序开机自动运行

CSDN中使用VS制作安装程序的介绍很多,我这里主要是在开发winform是制作安装程序后,如何修改.config配置文件,并修改注册表HKEY_LOCAL_MACHINE、SOFTWARE/Microsoft/Windows/CurrentVersion/Run下的信息,让自己的程序开机自动运行。

解决以上两个问题关键要作到以下几点:

1、创建安装项目后要在自己的解决方案是添加一个新的类库项目(ClassLibrary1),并在新类库中添加一下安装程序类(Installer1),在Installer1类中添加如下代码:

string LogicDir;//用于读取安装目标的物理路径
protected override void OnAfterInstall(IDictionary savedState)
{

base.OnAfterInstall(savedState);
}
public override void Install(IDictionary stateSaver)
{
//string ll=Context.Parameters[]
LogicDir = Context.Parameters["LogicDir"];//Context.Parameters["LogicDir"];
base.Install(stateSaver);
}
protected override void OnBeforeInstall(IDictionary savedState)
{
base.OnBeforeInstall(savedState);
}
public override void Uninstall(IDictionary savedState)
{
base.Uninstall(savedState);
}
public override void Rollback(IDictionary savedState)
{
base.Rollback(savedState);
}

2、在库类项目ClassLibrary1是添加一个window窗体form1,用于完成自定义的安装配置。

窗体界面自己设计;

如添加三个TextBox

txtServerName服务器名称

txtSQLUserName  SQL用户名称

txtSQLUserPassword SQL用户口令

添加一个Button

 

给Form1添加字段 string filePath;

 

重载Form1的构造函数

public Form1(string filepath)

{
filePath = filepath;
InitializeComponent();
}

 

Button1的单击事件代码如下:

 

private void btSave_Click(object sender, EventArgs e)
{

Configuration config = ConfigurationManager.OpenExeConfiguration(filePath + @”/MySchool.exe”);
//配置MySchool.exe.config文件。

if (config.ConnectionStrings.ConnectionStrings["MySchoolConnectionString"] != null)
{
config.ConnectionStrings.ConnectionStrings.Remove(“MySchoolConnectionString”);
//=”Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=123456″
string connString = “Data Source=” + this.txtServerName.Text.Trim();
connString += “;Initial Catalog=MySchool;User ID=” + this.txtSQLUserName.Text.Trim();
connString += “;Password=” + this.txtSQLUserPassword.Text.Trim();
ConnectionStringSettings conn = new ConnectionStringSettings(“MySchoolConnectionString”
, connString, “System.Data.SqlClient”);
config.ConnectionStrings.ConnectionStrings.Add(conn);
config.Save();
//此处开开始添加开机自动运行的键值,注意要using Microsoft.Win32;
RegistryKey hklm = Registry.LocalMachine;
RegistryKey shoftwer = hklm.OpenSubKey(@”SOFTWARE/Microsoft/Windows/CurrentVersion/Run”,true);
// RegistryKey ksxt = shoftwer.CreateSubKey(“ksxt”);
shoftwer.SetValue(“ksxt”, filePath + @”/MySchool.exe”);
Application.Exit();
}
}

3.修改安装程序类Installer1中的OnAfterInstall方法如下:

 

Form1 fm1 = new Form1(LogicDir);//实例化一个窗体,
fm1.ShowDialog();//让新窗体显示
base.OnAfterInstall(savedState);

 

4.修改安装程序类Installer1中的Install方法如下

 

LogicDir = Context.Parameters["LogicDir"];//读取安装目标路径
base.Install(stateSaver);

 

5.在安装项目中“自定义操作”

 

右击“安装”添加自定义操作,自定义操作来源于安装项目的“应用程序文件夹”中的“主输出来自ClassLibrary1(活动)”项。

 

6.修改“主输出来自ClassLibrary1(活动)”的CustomActionData属性为 /LogicDir=”[TARGETDIR]/”

 

把Windows Installer 属性的安装目标属性[TARGETDIR]赋值给LogicDir,这样在Install方法中才能读取到安装路径。

 

照以上步骤生成解决方案后,即可发布自己的程序。

用以上思路也可以实现卸载输入合法口令卸载的功能。

Hyper-V结合远程路由访问实现一个公网IP内部多个虚拟服务器的发布

摘自:http://mwt666.blog.51cto.com/64376/265362/

Hyper-V结合远程路由访问实现一个公网IP

内部多个虚拟服务器的发布
现在有一台Windows Server 2008 服务器有且只有一个IP地址是可以进行Internet的网络访问,现在在该服务器上安装hyper-v的角色,并且在Hyper-v上安装两台Guest OSVM1VM2VM1服务器上安装的IIS,对外提供网站服务器。
以下是这个应该的基本架构图。为了使结构简单,不容出问题,所以在物理服务器的宿主机上启用远程路由访问,为内部的物理服务器提供NAT的映射。
 
1.安装虚拟网卡
  打开设备管理器
 
   选择  操作添加过时硬件
 
添加硬件向导,下一步
 
选择搜索并自动安装硬件
 
继续下一步
 
选择网络适配器,继续下一步
 
厂商选择Microsoft,网络适配器选择Microsoft Loopback Adapter
 
继续下一步
 
提示已经添加成功,完成添加硬件向导
 
我们可以再设备管理器中看见一个Microsoft Loopback Adapter的网络适配器
 
在网络连接中我们可以看见一块Microsoft Loopback Adapter的网卡
 
通过Hyper-V的虚拟网络管理器,我们需要虚拟一张外部的网卡,点击添加
 
虚拟网络设置名称为Microsoft Loopback,连接到外部并且允许管理操作系统共享
 
完成我们可以再网路连接中看见一张新的Microsoft Loopback网卡
 
设置Microsoft Loopback网卡地址为172.16.1.1/24
 
并且这张网卡上去掉除过TCP/IPv4所有项目
 
设置完成后我们查看该网卡看的详细信息
 
在已经安装的虚拟机上,设置网络适配器的网络,为刚才新建的网络Microsoft Loopback
 
完成后。我们对物理服务器添加远程访问和路由。点击添加角色
 
通过向导添加,点击下一步
 
选择网络策略和访问服务,下一步
 
继续下一步
 
这里选择路由,点击路由
 
弹出添加角色向导,点击添加所需的角色服务
 
确认后,下一步
 
点击安装
 
进行安装中
 
安装完成后
 
 
开始配置并且启动路由和远程访问
 
下一步
 
选择网络地址转化(NAT),下一步
 
选择公用接口连接到Internet,这里选择物理网卡并且是外网的地址192.168.80.67,下一步
 
选择启用基本的名称和地址服务,下一步
 
可以看见内部网络地址和子网掩码,计算机已经根据网卡的信息得出,继续下一步
 
点击完成后,路由和远程访问基本的配置就已经完成了。
 
完成后,在NAT的属性里,可以看见有一个地址分配的选项,勾选上后,表示内部的机器可以通过DHCP上网。
 
在虚拟机器上,我们通过ipconfig /renew,获得了地址
 
在物理服务器上通过IE访问虚拟机器上的Web服务器,已经成功
 
下边要做的是通过外部地址访问内部的这个web服务器。网络策略和访问路由和远程访问—IPv4—NAT,我们找到外部物理网卡的链接,右键属性
 
选择  服务和端口—Web服务器(HTTP)。也可以自己添加自己需要的端口
 
修改专用地址,也就是需要做端口映射的内部虚拟机器的地址
 
 
完成后,我们可以再外部的机器上用IE浏览器测试访问物理服务器的地址http://192.168.80.67,就可以得到刚才在物理服务器上访问http://172.16.1.189,一样的页面
 
如果内部还有其它服务器需要映射,可以安装上边的方法添加。

马化腾:灰度法则的七个维度[转]

腾讯公司董事会主席兼 CEO 马化腾
腾讯公司董事会主席兼 CEO 马化腾

   7 月 9 日上午消息,腾讯董事局主席马化腾今日向合作伙伴发出公开信,从需求度、速度、灵活度等七个维度解释互联网产品创新。

“在腾讯内部的产品开发和运营过程中,有一个词一直被反复提及,那就是“灰度”。任正非曾经写过《管理的灰度》,他所提倡的灰度,主要是内部管理上的妥协和宽容。”马化腾说,怎样找到最恰当的灰度,既能保持企业的正常有效运转,又让创新有一个灵活的环境;既让创新不被扼杀,又不会走进死胡同,是互联网企业最需要深入思考的问题。

马化腾从生态的角度观察思考,把 14 年来腾讯的内在转变和经验得失总结为创造生物型组织的“灰度法则”,这个法则具体包括需求度、速度、灵活度、冗余度、开放协作度、创新度、进化度等 7 个维度。

以下是公开信中对七维度的详细解释:

需求度:用户需求是产品核心,产品对需求的体现程度,就是企业被生态所需要的程度

大家可能认为说用户有点老生常谈,但我之所以在不同场合都反复强调这一点,是因为最简单的东西恰恰是做起来最难的事情。

产品研发中最容易犯的一个错误是:研发者往往对自己挖空心思创造出来的产品像对孩子一样珍惜、呵护,认为这是他的心血结晶。好的产品是有灵魂的,优美的设计、技术、运营都能体现背后的理念。有时候开发者设计产品时总觉得越厉害越好,但好产品其实不需要所谓特别厉害的设计或者什么,因为觉得自己特别厉害的人就会故意搞一些体现自己厉害,但用户不需要的东西,那就是舍本逐末了。

腾讯也曾经在这上面走过弯路。现在很受好评的 QQ 邮箱,以前市场根本不认可,因为对用户来说非常笨重难用。后来,我们只好对它进行回炉再造,从用户的使用习惯、需求去研究,究竟什么样的功能是他们最需要的?在研究过程中,腾讯形成了一个“10/100/1000法则”:产品经理每个月必须做 10 个用户调查,关注 100 个用户博客,收集反馈 1000 个用户体验。这个方法看起来有些笨,但很管用。

我想强调的是,在研究用户需求上没有什么捷径可以走,不要以为自己可以想当然地猜测用户习惯。比如有些自认为定位于低端用户的产品,想都不想就滥用卡通头像和一些花哨的页面装饰,以为这样就是满足了用户需求;自认为定位于高端用户的产品,又喜欢自命清高。其实,这些都是不尊重用户、不以用户为核心的体现。我相信用户群有客观差异,但没有所谓高低端之分。不管什么年龄和背景,所有人都喜欢清晰、简单、自然、好用的设计和产品,这是人对美最自然的感受和追求。

现在的互联网产品已经不是早年的单机软件,更像一种服务,所以要求设计者和开发者有很强的用户感。一定要一边做自己产品的忠实用户,一边把自己的触角伸到其他用户当中,去感受他们真实的声音。只有这样才能脚踏实地,从不完美向完美一点点靠近。

速度:快速实现单点突破,角度、锐度尤其是速度,是产品在生态中存在发展的根本

我们经常会看到这样几种现象:

有些人一上来就把摊子铺得很大、恨不得面面俱到地布好局;

有些人习惯于追求完美,总要把产品反复打磨到自认为尽善尽美才推出来;

有些人心里很清楚创新的重要性,但又担心失败,或者造成资源的浪费。

这些做法在实践中经常没有太好的结果,因为市场从来不是一个耐心的等待者。在市场竞争中,一个好的产品往往是从不完美开始的。同时,千万不要以为,先进入市场就可以安枕无忧。我相信,在互联网时代,谁也不比谁傻 5 秒钟。你的对手会很快醒过来,很快赶上来。他们甚至会比你做得更好,你的安全边界随时有可能被他们突破。

我的建议就是“小步快跑,快速迭代”。也许每一次产品的更新都不是完美的,但是如果坚持每天发现、修正一两个小问题,不到一年基本就把作品打磨出来了,自己也就很有产品感觉了。

所以,这里讲创新的灰度,首先就是要为了实现单点突破允许不完美,但要快速向完美逼近。

灵活度:敏捷企业、快速迭代产品的关键是主动变化,主动变化比应变能力更重要

互联网生态的瞬息万变,通常情况下我们认为应变能力非常重要。但是实际上主动变化能力更重要。管理者、产品技术人员而不仅仅是市场人员,如果能够更早的预见问题、主动变化,就不会在市场中陷入被动。在维护根基、保持和增强核心竞争的同时,企业本身各个方面的灵活性非常关键,主动变化在一个生态型企业里面应该成为常态。这方面不仅仅是通常所讲的实时企业、2.0企业,社会化企业那么简单。互联网企业及其产品服务,如果不保持敏感的触角、灵活的身段,一样会得大企业病。腾讯在 2011 年之前,其实已经开始有这方面的问题。此前我们事业部 BU 制的做法,通过形成一个个业务纵队的做法使得不同的业务单元保持了自身一定程度的灵活性,但是现在看来还远远不够。

冗余度:容忍失败,允许适度浪费,鼓励内部竞争内部试错,不尝试失败就没有成功

仅仅做到这一点还不够。实际上,在产品研发过程中,我们还会有一个困惑:自己做的这个产品万一失败了怎么办?

我的经验是,在面对创新的问题上,要允许适度的浪费。怎么理解?就是在资源许可的前提下,即使有一两个团队同时研发一款产品也是可以接受的,只要你认为这个项目是你在战略上必须做的。去年以来,很多人都看到了微信的成功,但大家不知道,其实在腾讯内部,先后有几个团队都在同时研发基于手机的通讯软件,每个团队的设计理念和实现方式都不一样,最后微信受到了更多用户的青睐。你能说这是资源的浪费吗?我认为不是,没有竞争就意味着创新的死亡。即使最后有的团队在竞争中失败,但它依然是激发成功者灵感的源泉,可以把它理解为“内部试错”。并非所有的系统冗余都是浪费,不尝试失败就没有成功,不创造各种可能性就难以获得现实性。

开放协作度:最大程度地扩展协作,互联网很多恶性竞争都可以转向协作型创新

互联网的一个美妙之处就在于,把更多人更大范围地卷入协作。我们也可以感受到,越多人参与,网络的价值就越大,用户需求越能得到满足,每一个参与协作的组织从中获取的收益也越大。所以,适当的灰度还意味着,在聚焦于自己核心价值的同时,尽量深化和扩大社会化协作。

对创业者来说,如何利用好平台开展协作,是一个值得深思的问题。以前做互联网产品,用户要一个一个地累积,程序、数据库、设计等经验技巧都要从头摸索。但平台创业的趋势出现之后,大平台承担起基础设施建设的责任,创业的成本和负担随之大幅降低,大家可以把更多精力集中到最核心的创新上来。

对我个人来说,2010、2011、2012年以来,越来越意识到,腾讯成为互联网的连接者也就是帮助大家连接到用户以及连接彼此方面的责任、意义和价值更大。在这个过程中,我们要实现的转变就是,以前做好自己,为自己做,现在和以后是做好平台,为大家而作。互联网的本质是连接、开放、协作、分享,首先因为对他人有益,所以才对自己有益。

对腾讯来说,我对内对外都反复强调我们作为平台级企业一定是有所为有所不为。一个好的生态系统必然是不同物种有不同分工,最后形成配合,而不是所有物种都朝一个方向进化。

在这种新的思路下,互联网的很多恶性竞争都可以转向协作型创新。利用平台已有的优势,广泛进行合作伙伴间横向或者纵向的合作,将是灰度创新中一个重要的方向。

进化度:构建生物型组织,让企业组织本身在无控过程中拥有自进化、自组织能力

这一年来,我也在越来越多地思考一个问题:一个企业该以什么样的型态去构建它的组织?什么样的组织,决定了它能容忍什么样的创新灰度。

进化度,实质就是一个企业的文化、DNA、组织方式是否具有自主进化、自主生长、自我修复、自我净化的能力。我想举一个柯达的例子。很多人都知道柯达是胶片影像业的巨头,但鲜为人知的是,它也是数码相机的发明者。然而,这个掘了胶片影像业坟墓、让众多企业迅速发展壮大的发明,在柯达却被束之高阁了。

为什么?我认为是组织的僵化。在传统机械型组织里,一个“异端”的创新,很难获得足够的资源和支持,甚至会因为与组织过去的战略、优势相冲突而被排斥,因为企业追求精准、控制和可预期,很多创新难以找到生存空间。这种状况,很像生物学所讲的“绿色沙漠”——在同一时期大面积种植同一种树木,这片树林十分密集而且高矮一致,结果遮挡住所有阳光,不仅使其他下层植被无法生长,本身对灾害的抵抗力也很差。

要想改变它,唯有构建一个新的组织型态,所以我倾向于生物型组织。那些真正有活力的生态系统,外界看起来似乎是混乱和失控,其实是组织在自然生长进化,在寻找创新。那些所谓的失败和浪费,也是复杂系统进化过程中必须的生物多样性。

创新度:创新并非刻意为之,而是充满可能性、多样性的生物型组织的必然产物。

创意、研发其实不是创新的源头。如果一个企业已经成为生态型企业,开放协作度、进化度、冗余度、速度、需求度都比较高,创新就会从灰度空间源源不断涌出。从这个意义上讲,创新不是原因,而是结果;创新不是源头,而是产物。企业要做的,是创造生物型组织,拓展自己的灰度空间,让现实和未来的土壤、生态充满可能性、多样性。这就是灰度的生存空间。

互联网越来越像大自然,追求的不是简单的增长,而是跃迁和进化。腾讯最近的组织架构调整,就是为了保持创新的活力和灵动性,而进行的由“大”变“小”。

大量Timer_MinBytesPerSecond,Timer_ConnectionIdle错误

在\LogFiles\HTTPERR的日志中发现了大量Timer_MinBytesPerSecond,Timer_ConnectionIdle错误,
根据网上的介绍,做了如下更改:
1) 从 IIS 管理器右键单击 本地计算机 选择 属性。勾选允许直接编辑配置数据库。
2) 在记事本中打开 C:\Windows\system32\inetsrv\MetaBase.xml 文件,
搜索MinFileBytesPerSec,将 MinFileBytesPerSec 设置从 240 更改为 0。
搜索ConnectionTimeout,将 ConnectionTimeout  设置从 120 更改为 600。
MinFileBytesPerSec如果不在C:\Windows\system32\inetsrv\MetaBase.xml 文件 就是在C:\Windows\system32\inetsrv\MBSchema.xml 文件
3)重新启动 IIS 。
———————————在修改MBSchema尤其注意,停止IIS进程,第一步修改
MetaBase
  • 在“IIsComputer”节点中,将 EnableEditWhileRunning 的值从 0 (FALSE) 更改为 1 (TRUE)。所做更改应如下所示:

    <IIsComputer Location ="/LM"

    EnableEditWhileRunning="1"

    EnableHistory="1"

    MaxBandwidth="4294967295"

    MaxHistoryFiles="10">

  • 将所做更改保存到 MetaBase.xml 文件中。

然后才能修改MBSchema文件。。。

——————————-另一种见解

前些天发现自己的网站无法访问,询问机房这边,说是机器最近常死机,我就把网站迁移到一个朋友的主机上, 结果没过几天机器又挂了,问朋友的机房那边说是硬件防火墙被攻击了而死掉了,详细情况不知。看来不是硬件问题,多半是被SYN FLOOD或者CC攻击了。恰好原来的机房说最近购买了新的防火墙,我又放了回去。

既然不是硬件问题而可能是攻击,我就开始检查IIS log了,发现 IIS 里面很多Timer_ConnectionIdle和Timer_MinBytesPerSecond的错误,到网络上google了一下,常见说法是说错误是因为IIS的设置不当引起的,是因为连接超时时间设置太小,解决方法是设置连接超时为600秒,把MinFileBytesPerSec的设置从240修改到0(相当于关掉该设置)。觉得这些解决方法都有问题,假如车辆防盗警报经常响,正确的解决方法是看看有谁常来打你车子的主意,或者把车子放在更安全的地方,而绝对不是关掉警报。

因为HTTP服务需要占用TCP连接,而TCP连接时是需要占用系统资源的,而且IIS为每个连接也需要分配相应的资源。目前的主机能够处理上万的连接就可以说是软硬件设计都很不错了(可以参见C10K )。假如恶意人员通过一台或者多台机器发起大量的连接,而不请求内容(这样不需要消耗多少攻击机器的带宽),就可以大量消耗服务器资源而达到拒绝服务的目的。

所以 IIS 需要关闭长时间非活动的连接,这个就是Timer_ConnectionIdle 的错误由来。

既然盾牌改进了,当然矛也要发展一下,攻击者可以给服务器故意缓慢的发送和接收内容而消耗服务器的资源,这样可以避免服务器对于Timer_ConnectionIdle 的保护,相应的IIS的防范就是 MinFileBytesPerSec 设置,MinFileBytesPerSec 属性通过以最小的数据量保持连接,来禁止恶意的或软件工作不正常的客户端消耗资源。如果吞吐量低于 MinFileBytesPerSec 设置的值,则终止连接。LOG里面就会显示Timer_MinBytesPerSecond错误(一些Timer_MinBytesPerSecond错误是因为 windows 2003 的http.sys错误引起的,解决方式是打上最新 ServicePack : http://support.microsoft.com/kb/919797 http://support.microsoft.com/kb/919797/en-us )

所以说这些设置都是用来保护IIS服务器的,可以一定程度上抵御一些恶意的行为消耗服务器的资源,所以我反而将IIS连接超时从原来的600秒改到了30秒