真的是太不容易了,以前的时候在window server 2003上面搭建了一套asp+oracle的接口系统,就费了好大的劲儿,其实那会迷迷瞪瞪的也不知道怎么的就弄好了,也懒得管了。OK,从昨天到今天打算把接口从测试环境部署到公网环境上去的时候就出现了各种各样的问题,这次一定得记录一下。
先来说一下这套接口系统的整体方案:
之所用选用asp是因为属于轻量级的接口系统,只需要修改好了以后复制粘贴上去接口就立即生效,而不需要像java系的接口程序要用tomcat打包、上传、部署这样的。那这个系统就是现在window server上启用IIS,然后建立web网页服务,然后通过ODBC连接上数据库,在web页面中访问和连接oracle数据库。
下面就开始一步一步介绍如何实现这个过程。
因为我们是部署ASP,所以记得把这两个相关的勾上,感觉不勾选asp.net也没啥事,但是保险起见还是都勾上吧,也不多啥的
安装完成之后,就可以在管理工具中找到iis管理器了。
这里我在实际中因为当时IIS已经被启动了,但是估计是没有正确得被启动,我找了好久都没有找到IIS管理器,后来一怒之下重新把IIS服务关掉然后重新启动,勾上ASP,就ok了。很多时候,如果你觉得自己的操作有问题,或者别人已经给你弄好了但是不知道为什么有问题,就删除了重新来弄吧。
然后我们在网站上面右键,选择添加网站
弹出来下面的界面:
这里面网站的名称随便写就好了;物理路径选择你自己建立的一个文件夹;类型和IP地址都不要变,保持HTTP和全部未分配,端口可以随便填一个,因为我们这个服务器上已经有网站用了80端口,所以我在实际中用了8080;主机名可以不写的,然后点击确定
这里要注意一下,IIS默认的那个网页会占用掉80端口,刚同事来找我说他们的网页打开成iis7的页面了,我一看果然是把端口给占用掉了。
这里我们的网站其实已经建立好了,可以在你自己的网站的目录下面写一个简单的测试页面,这是我刚弄好的网站目录,一个简单的index.html页面
.
在本机的浏览器里面输入 127.0.0.1:8080就可以看到页面上显示了123456,说明我们的页面已经搭建好了。如果你的服务器可以公网访问,直接输入你的公网IP地址加上端口号,也可以看到刚建立好的页面。
到这里其实网站已经搭建起来了,但是还有两步额外的操作在这里一并做了吧。
首先就是能显示页面的错误代码,如果不打开的话,asp出现什么错误提示我们是看不到的
打开我们上一步建立好的网站
双击ASP
点开调试属性,然后这里面 “将错误发送到浏览器”选项默认的是false,我们将其改成True
接下来的步骤是更改应用程序池启用32位应用程序,为什么要这样做我们在后面再告诉大家。
我这里安装的是oracle10g的客户端,基本上都是默认的安装下来,好像只有
安装类型,选择管理员和Oracle Net Configuration Assistant:勾选“执行典型配置”安装完成数据库后
在开始菜单中 选择打开 Net Configuration Assistant
选择 本地Net服务名配置
选择添加
这里的服务名自己填就好了
选择默认的TCP就ok
这里需要注意一点:向你们的数据库管理员要一下数据库的内网IP地址以及端口号;我不太确定这里填写外网地址是否可以,因为我们的系统做了比较复杂的安全认证,我这里写外网地址是不ok的;然后端口号也要问清楚。
这里也可以选择直接测试,不过应该是会失败的,因为使用的用户名和密码不对,
点击下面的更改登录,换成你的用户名和密码,再重新测试,应该就能连接成功
下一步
这里Net CA就配置好了。
这里如果你直接用系统中自带的ODBC,会出现这样的情况:
你会发现在系统DSN添加中只有一个SQL Server,这就是我们之前一个地方提到的,32位和64位的原因了,不过网上有解决办法:
找到C:/Windows/SysWOW64
双击打开odbcad32.exe,
在选择系统DSN,选择添加,就可以找到oracle10g这个我们需要用到的驱动了
点击完成
在弹出的对话框中,Data Source Name我们在第2步中创建的名称,然后TNS service Name从下拉框中选择上一步建立好的那个,图中是我创建的名称。点击ok,这一步就算完成了。
一个典型的测试你的ASP能不能成功连到数据库的页面如下:
server填写成前两个步骤里面我们起的那个名字,然后uid是你的oracle的用户名,pwd是密码
还记得我们第1步里面有改过web的程序池支持32位么?如果没有那个步骤,你的页面应该会先有1行 1,111111,就是我们输出的内容,然后会提示一个80004005的错误
错误的原因是 : 未发现数据源名称并且未指定默认驱动程序
采用这个网页中的方法http://blog.snsgou.com/post-619.html,也就是我们在前面处理过的,把程序池改成启用32位的程序 就ok了。
如果你以为到这里就ok了,那你就又错了,改完了之后,你的asp页面会弹出另外一个错误:
依旧是80004005错误,但是错误的原因是SQLAllocHandle on SQL_HANDLE_ENV失败,继续google如何解决,找到了这个页面:
http://bbs.bccn.net/thread-192876-1-1.html
我也想起来了之前在windows server 2003上面也出现过同样的问题,当时也是搞了好多然后重启下就ok了,就抱着试一试的方法,同样的步骤操作了一遍,然后重启,一定要重启,就ok了
到这里,我们的整个ASP页面链接数据库全部都成功了!!
版权声明:本文为博主原创文章,未经博主允许不得转载。
Windows server2008 搭建ASP接口访问连接oracle数据库全过程记录
原文地址:http://blog.csdn.net/u011156012/article/details/47318063