WebServer(ASMX)服务程序网站的编写简单总结。
WebServer中遇到的问题
编写WebServer程序VS运行调试时如果出现
System.Data.OracleClient.OracleException: ORA-06413: 连接未打开。 这个是因为用OraOle驱动来访问Oracle数据库时,所在程序的文件夹,名字的最后不能为")"或者“--”这些字符。
VS2013在windows7 64位版本下安装时,默认有个program files ( x86 ) ,就是这个“()”引起的;
修改VS2013的安装目录,则在From程序中新建数据源,测试通过了;
但是新建web程序,手写连接数据库,运行,仍然提示“ORA-06413: 连接未打开”;
原来在项目中运行web程序,默认是使用vs内置web服务器(develop server),而这个内置服务器的程序被安装在了c:/program files(x86)/common files/ 下面,这里也用到了"(",因此造成了错误。
但是目前也没有找到在安装时能够修改这个内置server的安装路径的地方。
所以这里只用了一个方法绕开内置server。那就是使用本机IIS来调试程序。在解决方案中,选中web项目点右键选属性,在web标签下可以把调试服务器该为本机iis。这是再调试web程序,连接数据库成功了。
把程序放在windows 2008 R2 64bit的服务器上,处理Excel时出现上面的错误。
解决方法,是到服务器的打开IIS管理器。go to Application Pool,找到对应站点的池。右击Advanced setting... 参考下图,把Enable 32-Bit Application 设为由False 为True。
其他程序调用发布后的WebServer函数程序:
在已经知道其URL地址的情况下,
在Windows开始菜单中找到 Visual Studio Command Prompt。然后再里面输入指令:
wsdl http:// 你的 WSDL 地址,就可以在 c:... 目录下生成一个 .cs 文件。把这个文件复制到你的项目中即可。
同时你还可以修改 cs 的代码。把URL 参数开放出来。可以通过读取配置。
如果出现
你可以在 URL 后加上 ?wsdl 试试。确认 这个 URL 能在浏览器打开。
WSDL可以要求内部人员另存为把XML发给你。你在本地用 wsdl D:xxxx.wsdl 这样也可以生成cs文件。
还有个办法更麻烦些。调用 WebRequest,发送 POST 请求给这个URL。你查看本地wsdl时候,在描述内容上有写到这个。