本文共 4247 字,大约阅读时间需要 14 分钟。
经过一周的IIS折腾,一周的ORACLE折腾。在经过今天下午的一点小曲折,终于在VS2005下对MFC引用WEBSERVICE连接ORACLE数据库取得了初步的成功。现总结一下: 这个过程分三步走: 一创建WEBSERVICE(C#) 二 三 现将其中碰到的问题及解决过程记录如下: 一 IIS的配置及WEBSERVICE的初实例: 二 ORACLE数据库的初步认识: 用户中有它们各自的表,索引之类的。 三 C#连接ORACLE: 关于连接代码,网上多的是,在此我也写在这吧。 头部添加下面两句话 using System.Data; using System.Data.OracleClient; 添加一个按钮,添加代码如下: string ConnectionString = "Data Source=orcl;user=scott;password=wu001";//写连接串 1 添加using System.Data.OracleClient;这句话,如果你直接写的可能是没有的。按如下方法添加即可,在 项目名称上点右键,添加引用,在.NET选项卡找到System.Data.OracleClient,确定即可,然后再在头部添 加using System.Data.OracleClient; 然后把代码写在WEBSERVICE的页面即可,上面的代码是我在C#的WINDOWS应用程序中调试的,我确保无误后 直接简化如下,写在WERSERVICE的页面里。 [WebMethod] string ConnectionString = "Data Source=orcl;user=scott;password=wu001";//写连接串 } 不要以为我这段代码不够健壮,可是如果没错的话就不用考虑健壮性的问题。然后添加开始生成网站,发布网站即可。我用VS自带的HTTP方法调用方法是没错的。可是用MFC添加引用时就不行了。纠结了10分钟,回来再在IIS的添加虚拟目录后,在此浏览就错了。后面的介绍具体的解决办法,耐心耐心,哈哈。 3 string ConnectionString = "Data Source=orcl;user=scott;password=wu001";的具体解释: DataSource 即为默认的全局数据名。建议大家在装ORACL的时候就创建数据库。在安装目录下的的NETWORK里的ADMIN里的tnsnames.ora文件中,用记事本打开。我的内容如下:DataSource即为这里的ORCL,写上去即可。 # tnsnames.ora Network Configuration File: D:\oracle\product\10.1.0\db_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. ORCL = EXTPROC_CONNECTION_DATA = 4 在虚拟目录中,浏览servece.asmx时,报错,需要oracle客户端8.7.1上以上的版本.不要惊慌,按如下方法解决即可. System.Data.OracleClient 说明: 文件夹没有显示'安全’,按照如下操作即可调出。 第一种方法:打开我的电脑——工具——文件夹选项——查看——使用简单文件夹共享前的对勾取掉一切就ok! 第二种方法:WIN+R打开运行——输入secpol.msc-----本地策略——安全选项——网络访问——本地用户共享安全模式——改为经典就ok! 要解决以上问题,只要给Authenticated1、以Administrator权限登录Windows 2、启动Window 3、右键弹出菜单,选择该目录共享与安全(Win2000下要点击属性) 4、点击 5、在组和用户名称列表中点击“Authenticated 6、在该用户的权限列表中,将“读取和运行”的选择框置为不选中状态 7、再次点击“读取和运行”的选择框,将其设置为选中状态 8、点击“高级”按钮并在权限项目中确定“Authenticated 9、点击“确定” 10、重启动, 。 四 MFC应用程序引用WEBSERVICE: 我用的VS2005,没出现网上说的添加WEB引用是灰色的问题。在项目名称上点击右键,添加WEB引用即可。 因是我是在本机上,所以点击查看本地的引用即可。输入引用名,确定。而后,会有生成的对应的.h文件, 拖入头文件中.我们在些再弄一个按钮,在其对应的函数中添加如下代码: CoInitialize(NULL); 当然.cpp头中应该包含WEBSEVICE对应的头文件,如下: #include "WebService.h" using namespace Service; 到此,一个用VS下用webservice连接oracle即O了.严谨起见,哈哈,补充一下: 我已解锁scott用户,在其下建表test,建表命令如下:create table test(id number(4),name varchar2(5)). 在用oracle创建数据库时提示有口令管理,那时解锁用户即可,可设置密码(我的密码是wu001).我用的是10g,oracle恶心的是密码必须包含字母. 这样就O拉. 打开 sql/plus,用SCOTT进入,输入select *from test;() 主机字符串这行不用管,我也不知道是干啥的.那位清楚,可给我留言说声,欢迎交流哪.即可看到插入成功拉. 贴个图:
|
转载地址:http://bohvi.baihongyu.com/