RSS 2.0 Feed
2006-12 Entries
摘要:举个例子来说,请访问以下地址: http://www.icbc.com.cn/news/hotspot.jsp?column=%3ccenter%3e%3cfont+size%3d7%3e%b9%a4%c9%cc%d2%f8%d0%d0%b8%f8%b2%a9%bf%cd%cc%c3%d7%a2%d7%ca%a3%b5%a3%b0%a3%b0%cd%f2%3c%2ffont%3e%3c%2fcenter%3e 地址的访问效果如下:    最初的报道可以看CSDN首页的这篇博客: http://blog.csdn.net/hcat1999/archive/2006/12/31/1470770.aspx 如果这里显示的是某些文字的话,或者一些带木马的内容,将非常非常严重。 这可不是钓鱼网站,而是实实在在存在的工行网页。...[阅读全文]

posted @ | Feedback (73) | Filed Under [ 技术随笔 非技术随笔 网站开发管理相关内容 ]

摘要:在Vista IIS 7 中用 vs2005 调试 Web 项目核心是要解决以下几个问题: 1、Vista 自身在安全性方面的User Account Control (UAC) 2、安装必须的IIS7 组件。 3、Vista 自带的IIS7 跟 IIS 6 在底层都发生了变化,我们如何让IIS7以兼容IIS6 的方式运行。因为VS2005并不支持IIS7。 下面通过截图方式来说明如何配置上述几点,以保证VS2005可以调试 Vista 操作系统中基于IIS的Web 项目。 一、安装必须的IIS7 组件 IIS7 被分成了很多个组件,默认是不安装的,你需要安装这些组件。 下图对应的功能,可以通过以下步骤打开:开始 --> 控制面板 --> 程序 --> 打开或关闭 Windows 功能 1、VS2005 并不能识别 IIS7 ,要让它识别IIS7, 就需要安装IIS7 的一个插件:IIS6 管理兼容性; 2、IIS 默认安全性:VS2005 中,如果要调试站点的话,必须有“集成 Windows 身份验证” 其他两个,在一些情况下也能会用到: 摘要式身份验证 是使用 Windows 域控制器对请求访问 Web 服务器上内容的用户进行身份验证。 基本身份验证 是要求用户提供有效的用户名和密码才能访问内容。 3、要调试 ASP.net 当然要安装IIS支持 ASP.net 的组件了。 二、配置IIS7 1、IIS7 在安装了上述组件后,一些功能并没有启用,你需要把它启用起来: 下述配置功能你可以在 控制面板 --> 管理工具 -->Internet 信息服务(IIS)管理器 程序中找到 打开 Internet 信息服务(IIS)管理器 后,在中间部分的下部,可以看到 身份验证 配置项,双击就是如下界面: 刚才我们增加的几个身份验证,需要在你要调试的站点上启用。 注意:是你要调试的站点,而不是你要调试的应用程序目录! 2、IIS7 应用程序池的设置 IIS 的应用程序池根据托管管道模式分了两种类型:集成和经典 集成 .NET 模式下,应用程序不应在 <system.web>/<httpModules> 配置节中指定 ASP.NET 模块组件,而应使用 <system.webServer>/<modules> 配置节来加载 ASP.NET 模块组件。 经典 .NET 模式 则是我们以前习惯的IIS 6 的方式,没有上述限制。 毕竟现在 Longhorn Server 离我们还远,我们当然要兼容Window 2003 的IIS6 的模式,所以我们需要修改站点的应用程序池设置,如下图: 我上面的截图是使用了现有的经典模式的应用程序池,你也可以自己先建立一个经典模式的应用程序池,然后再用上图方式配置对应站点使用的这个经典模式的应用程序池。 三、 VS2005 的启动。 由于 Vista 的 User Account Control (UAC)  ,要避免调试中出现没有权限问题,我们应该以管理员身份来运行 Vista.如下图:   参考资料: Enabling ASP.NET 2.0 Debugging on Visual......[阅读全文]

posted @ | Feedback (27) | Filed Under [ .net 编程心得 技术随笔 网站开发管理相关内容 VS2005相关 Vista 相关 ]

摘要:昨天花了一天时间装Vista,以及调整相关软件配置,中间碰到了一些问题,特整理如下: 一、Vista 的序列号跟版本捆绑。而Vista 的光盘一般是各个版本的内容都包含,安装时候,根据你输入的序列号,自动给你装对应的版本。         我昨天装的是中文64位Vista,安转好后,显示的版本是:Windows Vista Business ,而不是Windows Vista Ultimate。原因就是因为我最开始输入序列号的时候,输成了Business 的序列号,而不是 Ultimate 的序列号。安装过程中,也就不会让我选择版本。         昨天由于不明白这个道理,而且没有注意到自己输入的序列号是 Business 的序列号,而不是 Ultimate 的序列号,安装后看到不是Windows Vista Ultimate,才引出后面的一系列问题。安装后,我又装了一些其他软件,比如虚拟光驱 DAEMON Tools 4.08HE (64 bit)。后来发现不是Ultimate,我在已经安装好Windows Vista Business 的基础上,再次用原盘升级安装,(这时候我仍然没有注意到我一直输入的是 Business  的序列号,仍然再次输入了 Business  序列号)希望升级到 Ultimate 版,花费了数个小时后,升级完毕,但是看我的电脑属性,仍然是 Business 版本。         但是升级后,我的虚拟光驱出问题了,开机就报虚拟光驱驱动错误。在安装的程序列表中,找不到DAEMON Tools ,就更谈不上这个程序的卸载了。         安装过程中,Vista 已经提示我 DAEMON Tools  用的存储控制器 SCSI/ RAID Host Controller 有问题。但是仍然可以继续安装,安装完成后,就出现了下面的问题。 二、特殊情况下,Vista 下虚拟光驱软件的卸载问题。        当时我直接执行DAEMON Tools 安装目录下的卸载程序卸载,也不能卸载。(正常是应该可以卸载的)。后来我修改了注册表,删除了已知虚拟光驱的目录,这时候,程序启动不报错了。但是我无法重新安装虚拟光驱。每次安装到一半,都会报"You must reboot after previous operation."',选择yes,重起电脑,每次都这样。陷入了一个死循环。最后使用了提供该虚拟光驱软件网站提供的另外一个工具: SPTDinst-v138-x64  ,才彻底把有问题的驱动卸载掉。同时也可以重新安装虚拟光驱。 三、中文Vista + 中文Office 2007 + 英文 VS2005 的结果是,VS2005 菜单中,中英文混杂。         我的XP的笔记本是 中文 XP + 中文 Office 2007 + 英文 VS2005 ,我的 VS2005 就不存在菜单中,中英文混杂的问题。 四、在针对Vista的 VS2005 SP1 出来前,VS2005 每次打开应该选择以管理员身份运行。         否则你会看到各种错误,但是原因都是因为没有权限干某某事情。 VS2005 的普通 SP1 也是这个问题。 五、比较奇怪的是,默认情况下,在控制面板--> 管理工具中, 你默认看不到“组件服务”这项,你如果需要使用和配置组件服务,需要自己先运行 mmc ,然后添加\删除管理单元。         不知道是不是我这个版本的Vista 的问题。难道有 WCF 了,微软希望“组件服务”将被人们所遗忘??...[阅读全文]

posted @ | Feedback (17) | Filed Under [ .net 编程心得 技术随笔 Vista 相关 ]

摘要:有段时间,CSDN的揭帖总随机出些问题,得分人数得分总和小于帖子分数。 揭帖这里,使用了SQL 的游标,核心代码如下: declare mycursorxx scroll cursor for select ..... FROM .... where ..... order by .... open mycursorxx fetch first from mycursorxx into @PostUserId,@Point,@ReplyID while @@fetch_status = 0 begin ...............fetch NEXT from mycursorxx into @PostUserId,@Point,@ReplyID end 分析进去后,上面的游标定义有并发处理的问题,修改成以下方式就没有了 declare mycursorxx cursor scroll  static   for select ..... FROM .... where ..... order by .... open mycursorxx fetch first from mycursorxx into @PostUserId,@Point,@ReplyID while @@fetch_status = 0 begin ...............fetch NEXT from mycursorxx into @PostUserId,@Point,@ReplyID end 核心就是把这个游标定义成静态游标,就可以避免上述问题的发生。 参考资料:http://www.stefli.com/blog/blogview.asp?logID=219...[阅读全文]

posted @ | Feedback (14) | Filed Under [ 数据库开发管理心得 技术随笔 ]

摘要:前几天在把一个Communtiy Server 的数据库从SQL 2000升级到SQL 2005 的时候,碰到一个怪异的问题,报如下错误: Violation of PRIMARY KEY constraint 'PK_cs_Threads'. Cannot insert duplicate key in object 'dbo.cs_Threads'. 分析进去后,竟然发现这个表的自增字段数据库中已经达到了6144,而数据库维护的这个表的初始自增值只到6109。 解决方法很简单,利用以下SQL 语句即可搞定: DBCC CHECKIDENT ('cs_Threads') 上述语句的意思就是:如果表'cs_Threads'的当前标识值小于列中存储的最大标识值,则使用标识列中的最大值对其进行重置。 CHECKIDENT 命令可以有以下几种写法: 1、DBCC CHECKIDENT ('table_name', NORESEED) 不重置当前标识值。DBCC CHECKIDENT 返回一个报表,它指明当前标识值和应有的标识值。 类似如下的报表: Checking identity information: current identity value '6109', current column value '6144'. 2、DBCC CHECKIDENT ('table_name') 或DBCC CHECKIDENT ('table_name', RESEED) 如果表的当前标识值小于列中存储的最大标识值,则使用标识列中的最大值对其进行重置。 上述命令执行的时候,也会报类似上面的报表。 3、DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value) 当前值设置为 new_reseed_value。 如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。 如果 new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。 参考资料:http://tech.httpcn.com/show.asp?id=2219...[阅读全文]

posted @ | Feedback (14) | Filed Under [ 数据库开发管理心得 技术随笔 ]

摘要:我们如果需要编程控制企业服务的行为,则可以利用 COMAdminCatalog 来进行操作。使用 COMAdminCatalog  之前,需要增加一个 Com 引用 COM +1.0 Admin Type Library ,如下图: 下面就简单的实现一个功能,遍历每个COM+ 应用,并显示出他们的一些信息。同时,如果找到你指定的 COM+ 应用,则设置它一直运行(Leave running when idle)。 using COMAdmin; COMAdminCatalog ca = new COMAdminCatalogClass(); COMAdminCatalogCollection cacc = (COMAdminCatalogCollection)ca.GetCollection("Applications"); cacc.Populate(); foreach (COMAdminCatalogObject cac in cacc) { Console.WriteLine("**************"); Console.WriteLine(cac.Name); Console.WriteLine(cac.Key); Console.WriteLine(cac.Valid); string[] nameArr = new string[] { "Identity", "ID", ......[阅读全文]

posted @ | Feedback (6) | Filed Under [ ServicedComponent(企业服务) ]

摘要:在 System.Web 命名空间 下有个静态方法:HttpUtility.ParseQueryString (String, Encoding) 使用指定的 Encoding 将查询字符串分析成一个 NameValueCollection。 我们如下代码显示的是我们需要的东西:string query = "?searchtype=1&bigclassid=0&searchKeys=123+456&author=&tabletype=now"; NameValueCollection nv = HttpUtility.ParseQueryString(query); Console.WriteLine(nv["tabletype"]); 但是我们用 Reflector 去看这个函数的实现:其中调用到了 System.Web.HttpValueCollection 类的internal void FillFromString(string s, bool urlencoded, Encoding encoding); 方法从 Reflector 看这个函数的实现如下: internal void FillFromString(string s, bool urlencoded, Encoding encoding) { int num1 = (s != null) ? s.Length : 0; for (int num2 = 0; num2 < num1; num2++) { int num3 = num2; ......[阅读全文]

posted @ | Feedback (6) | Filed Under [ .net 编程心得 技术随笔 VS2005相关 ]