摘要: 思路如下(参照源代码): 1、 frmServer启动两个网络侦听,主连接侦听,协助打洞的侦听。 2、 frmClientA和frmClientB分别与frmServer的主连接保持联系。 3、 当frmClientA需要和frmClientB建立直接的udp连接时,首先连接frmServer的协助打洞端口,并发送协助连接申请,同时在该端口号上启动侦听。 4、 frmServer的协助打洞连接收到frmClientA的申请后通过主连接通知frmClientB,并将frmClientA经过NAT-A转换后的公网IP地址和端口等信息告诉frmClientB。 5、 frmClientB收... 阅读全文
posted @ 2013-10-17 22:27 Aamboo 阅读(10346) 评论(1) 推荐(1) 编辑
摘要: .NET+Oracle 9i时产生的"未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序"解决方法: 在ora92文件夹的文件夹属性中,选择"安全"选项,把Authenticated Users帐号的"读取和运行"权限的选中状态去掉,然后保存应用后再将该用户的该权限选中后保存即可.如果是在FAT32分区中不用。 阅读全文
posted @ 2012-05-22 13:25 Aamboo 阅读(4794) 评论(0) 推荐(0) 编辑
摘要: 访问iis元数据库失败,需要修改权 调试程序出现了“访问iis元数据库失败”的错误,一般是由于先装visual studio后装iis服务造成的,看了网上最常见的解决方法就是运行aspnet_regiis -i 工具,但是有时候是系统权限的问题,用这样的方法就很难解决了。当然微软的提示是用metaacl.vbs这个工具,但是里面的参数什么意思很少有文档,或者文档也不懂。其实很简单aspnet_regiis -ga <WindowsUserAccount>就是赋予windows用户访问iis元数据库的权限,如aspnet_regiis -ga aspnet,适用于xp系统!如下图在v 阅读全文
posted @ 2012-05-22 10:56 Aamboo 阅读(678) 评论(0) 推荐(0) 编辑
摘要: ActiveX 部件不能创建对象/WebEdit/upfile_based_class.asp,行 53重新开启ADODB.Stream组件的办法:在开始—运行里执行:regsvr32 "C:\Program Files\Common Files\System\ado\msado15.dll"解决方法:在CMD 提示符下:运行: regsvr32 scrrun.dll;这是由于 系统为了预防 VBS类病毒 而禁止了 SCRRUN.DLL 重新注册scrrun.dll 就可以啦 scrrun - scrrun.dll - DLL文件信息 DLL 文件: scrrun 或者 s 阅读全文
posted @ 2012-05-17 17:24 Aamboo 阅读(11955) 评论(0) 推荐(0) 编辑
摘要: Loaderlock检测在一个拥有操作系统loader lock的线程上(如上例的video的运行线程)运行托管代码的情况。这样做有可能会引起死锁,并且有可能在操作系统加载器初始化DLL前被使用。虽然这样做很有必要,但在进行开发调试的时候,实在太麻烦。解决方案如下: 1.改注册表 在HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFramework下面增加一个String,值为"0" 不过这样做,在该计算机上所有基于.NET2.0开发都得不到MDA的好处。 2.为项目增加一个配置文件. 3.直接修改项目设置最简单的方法,在"Debug 阅读全文
posted @ 2012-04-06 13:04 Aamboo 阅读(2287) 评论(0) 推荐(0) 编辑
摘要: View Code 1 using System.Drawing;2 using System.Drawing.Imaging;3 using System;4 using System.Runtime.InteropServices;View Code 1 private const int WM_USER = 0x400; 2 private const int WS_CHILD = 0x40000000; 3 private const int WS_VISIBLE = 0x10000000; 4 private const int WM... 阅读全文
posted @ 2012-04-03 16:04 Aamboo 阅读(4274) 评论(2) 推荐(0) 编辑
摘要: 1. 主要内容 类型的基本概念 值类型深入 引用类型深入 值类型与引用类型的比较及应用2. 基本概念C#中,变量是值还是引用仅取决于其数据类型。C#的基本数据类型都以平台无关的方式来定义,C#的预定义类型并没有内置于语言中,而是内置于.NET Framework中。.NET使用通用类型系统(CTS)定义了可以在中间语言(IL)中使用的预定义数据类型,所有面向.NET的语言都最终被编译为 IL,即编译为基于CTS类型的代码,通用类型的系统的功能:建立一个支持跨语言集成、类型安全和高性能代码执行的框架。提供一个支持完整实现多种编程语言的面向对象的模型。定义各语言必须遵守的规则,有助于确保用不同语言 阅读全文
posted @ 2012-04-03 14:07 Aamboo 阅读(32151) 评论(9) 推荐(12) 编辑
摘要: const: 编译时常量,在编译成IL时会使用具体数值替换。readonly: 运行时常量,在具体运行时才获取具体值。如:将readonly修饰的赋值Datetime类型,会发现readonly的值是随着运行时间的不同而时间变化的。const是不支持new来赋值的。 阅读全文
posted @ 2012-02-28 11:01 Aamboo 阅读(456) 评论(0) 推荐(0) 编辑
摘要: TRUNCATE和DELETE有以下几点区别 1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。 2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。 3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。 4、TRUNCATE不能触发任何DELETE触发器。 5、不能授予任何人清空他人的表的权限。 6、当表被清空后表和表的索... 阅读全文
posted @ 2012-02-01 15:49 Aamboo 阅读(243) 评论(0) 推荐(0) 编辑
摘要: Oracle没有完全卸载,会出现许多莫名的问题,下面介绍卸载方法 1.以NT的Administrator登陆 2.通过控制面板--》服务,停掉所有的Oracle服务 3.打开注册表(regedit),删除以 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 4.打开注册表中得HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services删除 以ORACLE开头的所有服务 5.删除HKEY_LOCAL_MACHINE\CurrentControlSet\Services\EventLog\Application下的以Oracle开头的 阅读全文
posted @ 2011-12-14 09:55 Aamboo 阅读(230) 评论(0) 推荐(0) 编辑