在win7 + .net4.0 + VS2010的环境下开发的程序,基于wcf服务,与SQL 数据库交互。出于实情需要,要在没网络的环境下演示。
实现思路:将数据库挪到本机,WCF服务发布到本地IIS,建立虚拟网络来连接本地iis,从而实现无网络环境的网络程序。
电脑必备环境:iis + Sql Server + .net 4.0
1. 发布到WCF服务IIS。注意,Web.Config里面的ConnectionString连接地址要指向本地,(不要IP)。
<add name="TestConnectionString" connectionString="Data Source=localhost;Initial Catalog=Table1;Persist Security Info=True;User ID=xx;Password=xxxxxx" providerName="System.Data.SqlClient" />
2. 客户端生成WCF连接。注意,此处也指向本地的Wcf,地址和IIS发布的地址一致。在执行之前,先在服务器查看该地址是否能够打开。不能打开则说明第一步不成功。
public const string UriString = @"http://localhost/Test/WcfService.svc"; public static Ref.WcfServiceClient GetService(string uri = UriString) { var url = new Uri(uri); var sc = new Ref.WcfServiceClient(); sc.Endpoint.Address = new EndpointAddress(url); return sc; }
3. 添加虚拟网卡。win7添加虚拟网卡步骤:“设备管理器”,计算机名称右键,"添加过时硬件",“安装我手动从列表选择的硬件”,“网络适配器”,“MicroSoft” + "MicroSoft Loopback Adapter",完成即可,这时在设备管理器的网络适配器下面可以看到,最后,进入网络连接,可以看到刚添加的连接,设置IP,注意与真实IP同段。
我的系统是win7旗舰版,添加虚拟网卡完成时候,出现了“未识别的网络”。解决方法:
1. 打开注册表,依次点开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}]
2. 逐个查看节点下的子节点,看右边的“DriverDesc”项,值为"Microsoft Loopback Adapter"时,停下来。
3.在大节点下右键,"新建",“DWORD (32 -位)值”,数值名称:“*NdisDeviceType”,数值数据:“1”。
4.确定之后,注销一下电脑再重新登入,重新启用网络连接中的虚拟连接,
5.当看到“已启用”时,添加虚拟网卡步骤即完成。
断开网络只保留虚拟连接。调试程序。
当看到程序正常打开和运行时,心里那股油然而生的成就感,华丽丽地把我从头浇到尾。哇嘎嘎╮(╯▽╰)╭