有个类似的问题就是:开发的时候数据库的IP(假设是SQL server数据库)是自己开发部门的数据库IP,但我作为软件发布的时候用户的数据库IP是需要在软件安装后才得知的……假如我用ADO的话,我可以让用户在第一次运行软件的时候输入一次数据库IP地址然后保存到.INI文件中,因为我需要的只是一个数据库连接字符串……但是如果是对WS的调用呢?假如我也用上面的能得到WS运行的IP,又能怎么办呢?
很急需要解决的问题!! 我的软件是在Extrate上运行的,可不要告诉我到UDDI注册什么的方法哦`
调试欢乐多
好象是会生成一个代理类,但它是一段原代码,怎么改变呢!?
bdknight(死神) :但开发的时候指定域名,然后非得使用用户应用我们开发时候指定的域名,也不好吧。比如用户有原来的域名,其上有很多的系统在上面跑或者是它原来就已经有了一个很好的网络规划(包括服务器的域名划分),而你的软件要求用户非得把你的服务器的域名改为我们规定的,这……
这的确是个问题,如果确实如此,恐怕你的软件就很难傻瓜化安装了。我想到的一个折衷的办法是发布一个source code版本,然后用某种方法在安装的时候询问ip或者是域名,然后自动修改源代码自动重新编译,反正不让用户接触到src code就可以了
然后自动修改源代码自动重新编译……
没太明白你的方法,难道你的意思是说在安装程序中在选择IP后,直接从
source code找到相对应的版本的想对应的程序代码,然后把代码中的IP更换之后在编译(安装程序中完成)吗? 我头都大了……
可以具体一点吗?
我现在需要在.Net中调用和Delphi中调用,都不知道怎么解决!
此 Web 服务使用 http://tempuri.org/ 作为它的默认命名空间。
建议:在使 XML Web service 公开之前,请更改默认命名空间。如果不更改会产生什么影响?如果改应如何改?
楼上很多兄弟的方法都可行!!!非常感谢
做个总结,给大家参考!
假如http://192.168.1.200/WsTest/Service1.asmx是我的WS的URL
只要Add WebRefrence之后,调用时,
(1) 先New 一个Ws Class(我的为TestWs)
a=new ws.TestWs()
然后
(2) a.Url=sUrl//sUrl为通过处理后,把http://192.168.1.200/WsTest/Service1.asmx中的http://192.168.1.200替换为实际的发布后的IP(取得方法可以通过注册表或ini文件),其他不变
(3) 在调用其中的方法 a.TestMothed()
……
因为看到生成的代理类的代码中发现已经生成了http://192.168.1.200/WsTest/Service1.asmx这样的代码所以没想到直接更换Url就可以了。
问题解决。爽~
.Net 中的问题解决了! Delphi中对WS的调用还在测试中 ……
GetFile是一个WebMethod,这样,得到一个xml文档。调用TXMLDocument的相应属性解析具体内容就可以了。
http://www.microsoft.com/china/msdn/library/dv_vstechart/html/vbtchRedirectingApplicationToTargetDifferentXMLWebServiceDuringInstallation.asp
TO yeswhb() : 在Delphi中调用WS,我原来知道的 只是通过D本身的WS导入工具,通过输入一个WS的URL就可以生成WS的代理类和接口…… 但是,你用TXMLDocument能得到的只是这个WS的WSDL描述吧?不生成真正的代理类,怎么能调用远段的WS呢?能详细说说“调用TXMLDocument的相应属性解析具体内容就可以了”吗? 如果这样可以的话,我在TXMLDocument的LoadFromFile方法中动态取得URL,这样到是能解决问题了~~~~~~~~~~