以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教Webservice 生成dll调用问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=153967) |
-- 作者:lemonkashi -- 发布时间:2020/8/29 12:29:00 -- 请教Webservice 生成dll调用问题 请教蓝老师如果将一下webservice生成dll 然后引用到狐表中。按照论坛里面之前写的帖子 创建都失败 ,可能是我这里面的webservice写的方式和论坛里面的不一样。 http://49.232.191.89/WebLisService/RequestFormWebService.asmx想调用里面的AppliyUpLoad 函数 谢谢 蓝老师
|
-- 作者:有点蓝 -- 发布时间:2020/8/29 14:21:00 -- dll\'是怎么引用webservice的,写了什么代码? foxtable又是怎么引用dll的?写了什么代码?运行提示什么错误? |
-- 作者:lemonkashi -- 发布时间:2020/8/29 14:41:00 -- 蓝老师好 我参考如下帖子 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=92876&authorid=0&page=0&star=1 将webservice 生成一个dll文件 操作截图见附件1.png 在VS中参考上面帖子写的代码截图见附件2.png --------------- 引用生成的dll文件 在ft中写的测试代码如下: WeblisServiceTest.RequestFormWebService.RequestFormWebServiceSoap.HelloWorld() 参考附件3.png 点确定后提示报错如下 见附件4.png 比对 参考帖子的代码后 感觉和 我提供的webservice定的方式不一样 所以请教蓝老师 谢谢 [此贴子已经被作者于2020/8/29 14:44:01编辑过]
|
-- 作者:lemonkashi -- 发布时间:2020/8/29 14:42:00 -- [此贴子已经被作者于2020/8/29 16:57:47编辑过]
|
-- 作者:lemonkashi -- 发布时间:2020/8/29 14:43:00 -- [此贴子已经被作者于2020/8/29 16:57:26编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/8/29 15:37:00 -- vs项目 1、到vs新建一个类库项目,框架选.net framework 4.02、到项目添加一个服务引用,像上面图片一样 3、新建一个类,在类里面添加一个函数,假设名称为HelloWorld,代码如下: Public Function HelloWorld() As String Dim obj As New ServiceReference1.RequestFormWebServiceSoapClient() ‘这个是服务的主类型,所有服务接口都在RequestFormWebServiceSoapClient类里,而命名空间是ServiceReference1,在生成服务的时候可以自己改为其它名称,如上图 Return obj.HelloWorld() End Function 又比如调用服务的AppliyUpLoad函数,可以定义这样的函数: Public Function AppliyUpLoad(ByVal xmlData As String, ByVal orgID As String, ByVal jzType As String, <System.Runtime.InteropServices.OutAttribute()> ByRef sMsg As String) As Boolean Dim obj As New ServiceReference1.RequestFormWebServiceSoapClient() Return obj.AppliyUpLoad(xmlData, orgID, jzType, sMsg) End Function AppliyUpLoad接口是需要参数的(上面红色代码),至于是什么参数可以看接口文档说明,或者自行查看服务代码,照抄,查看代码方法,在 obj.AppliyUpLoad属性上右键选转到定义即可 4、编译这个类库为dll文件 foxtable项目 1、把dll复制到foxtable安装目录,并添加引用 2、打开foxtable按目录里的Foxtable.exe.config文件,添加如下配置(这个配置在vs项目的app.config文件中可以找到,添加web引用引用后会自动添加的,自己可以对比vs项目添加web引用前和添加web引用后的内容找出这段配置内容) <system.serviceModel> <bindings> <basicHttpBinding> <binding name="RequestFormWebServiceSoap" /> </basicHttpBinding> </bindings> <client> <endpoint address="http://49.232.191.89/WebLisService/RequestFormWebService.asmx" binding="basicHttpBinding" bindingC c name="RequestFormWebServiceSoap" /> </client> </system.serviceModel> 这段设置放到Foxtable.exe.config文件<startup>段之前,如: 注意备份Foxtable.exe.config文件,升级或者重装foxtable会被覆盖掉 3、调用接口的代码: dim jk as new WeblisServiceTest.WeblisService() dim res as string = jk.HelloWorld() msgbox(res) dim sMsg as string dim res2 as boolean = jk.AppliyUpLoad("xmlData参数值", "orgID参数值", "jzType参数值", sMsg) msgbox(sMsg) [此贴子已经被作者于2020/8/29 17:03:33编辑过]
|
-- 作者:lemonkashi -- 发布时间:2020/8/29 15:43:00 -- 先谢谢 蓝老师 我好好研究一下 |
-- 作者:lemonkashi -- 发布时间:2020/8/29 16:57:00 -- 谢谢 蓝老师 问题完美解决 |