ArcEngine编写WebService
开发环境:Windows7旗舰版64bit、VisualStudio2008 With SP1、ArcEngine10.0、NetFrameWork4.0、IIS7和C#开发语言。
背景:ArcEngine开发的分析功能同时在dotNet(CS)和Java(BS)中使用,在CS程序中运行正常,但是在BS运行下经常无法获得分析数据,因此想通过写一个WebService的方式进行解决。
因为之前一直做成CS的东西,很少接触BS内容,完全从0写起,因此写起来遇到了不少问题、比较费事。
下面记录下我写的大体过程,希望和我一样的新手可以用到,对于一些问题以及解决过程,将在以后进行说明。
1、新建服务
VS2008->新建->网站->Asp.Net Web 服务。
2、编写WebService内部代码与代码调试
打开Service1.asmx文件
找到这一行
1: [WebService(Namespace = "http://tempuri.org/")]
把NameSpace的值改为 [WebService(Namespace = http://gisAnalysis.org/)]
其中系统自带一个HelloWorld方法,方法之前添加[WebMethod]表示其为可以WEB调用的方法,之后用户可以根据自己的需要编写自己的AE代码。
我自己编写了一个爆管分析的调用方法:
1: [WebMethod]
2: public string BrustPipeAnalysis(double x, double y)
3、服务发布
找到IIS默认目录(我电脑目录为“C:\inetpub\wwwroot”)找到需要发布的服务文件夹。将该文件夹拷贝到需要发布服务的机器的IIS默认目录下面。然后进入IIS:
通过添加网站,添加我们拷贝过来的网站即可。
点击确定即可添加网站,添加完成后可以通过右键->管理网站->浏览(或者在最左侧的浏览网站)进行查看。如果正常则表示网站发布成功。
如果页面存在错误,可以通过进行相应的设置,可以在此修改应用程序池等。
上面是在IIS7.0的情况下进行的,对于IIS6.0版本,还需要进行权限和共享、Web共享以及添加Everyone权限设置。
可以直接在浏览网页上或者在调用程序进行服务测试,发布的服务可以直接在目录下修改其文件代码,修改后立即生效。
4、服务调用
新建一个调用程序工程。然后添加服务引用。
点击添加web引用按钮,弹出添加web引用窗口。
输入地址后点击“前往”按钮,可以前往到该web引用进行查看,没有问题后输入自己的web引用名称点击“添加引用”进行添加即可。
调用说明:
1: WebReference.Service myWeb =new WindowsFormsApplication.WebReference.Service();
2: myWeb.InitializeLifetimeService();
3: string strXml = myWeb.BrustPipeAnalysis(0, 0, true);
原先返回值为DataSet,因为在WebService中无法使用其为返回类型,所以将其转化为Xml返回,返回后根据相应的方法将Xml重新转化为所需的DataSet即可。
注意编写WebService,传递参数不能使IFeatureLayer、List等对象,如果存在这些对象要进行序列化与反序列化处理。同时因为是Java调用,所以在参数设置上不能使用ref、out等外部参数等。
因为第一次接触因此不可避免的存在一些不足,可能在上面中存在错误或者存在更好的处理方式,如果有什么不当的地方还请大家给指正一下,在这里先谢过了!(*^__^*) 嘻嘻……
ArcEngine编写WebService的更多相关文章
- Delphi编写WebService体会
源:Delphi编写WebService体会 Dispatch: 派遣,分派 Invoke: 调用 Invokable: 可调用接口 TReomtable: WebService中自定义类都是继承自该 ...
- ColdFusion 编写WebService 示例
1.开发 Web Services,编写cfcdemo.cfc组件,代码如下: <cfcomponent style ="document" namespace = &quo ...
- 使用Axis2编写webservice客户端,服务端
1.编写客户端 Axis2开发WebService客户端 的3种方式 [参考帖子] http://blog.csdn.net/wangjinwei6912/article/details/851259 ...
- 使用loadrunner编写webservice接口请求
1.使用工具: loadrunner12,本实例截图中都是loadrunner12工具 2.操作步骤: 1).新建脚本,选择Web Services协议: 2).选择工具栏: 3).点击Import, ...
- LR编写webservice协议接口
转自:http://lovesoo.org/use-loadrunner-call-webservice-interface-testing-optimization-summary.html 本文主 ...
- VS2010编写WebService与在IIS的发布<之简单讲解>
工具VS2010,window环境win7 一:Webservice的创建与方法查看调用 1.新建空web应用程序项目 2.新建web服务 3.自动生成 4.直接跑起来,可以看到有2个方法 5.点击H ...
- JAX-WS编写webservice
1.新建一个Java工程 2.创建要发布的类 package com.linjian.webservice; import javax.jws.WebMethod; import javax.jws. ...
- python编写webservice接口
1.pip install suds-jurko 2.pip install client #coding=utf-8 from suds.client import Client class Web ...
- WebService未能加载文件或程序集“ESRI.ArcGIS.XXX”或它的某一个依赖项
开发环境:Windows7旗舰版64bit.VisualStudio2008 With SP1.ArcEngine10.0.NetFrameWork4.0.IIS7和C#开发语言. 编写ArcEngi ...
随机推荐
- Jquery选择器之基本选择器
id选择器 共同点: text:代表标签之间的文本值 返回值:均为列表 根据给定的ID值匹配一个标签元素,如果id值中有元字符(如 !"#$%&'()*+,./:;<=> ...
- osx 文本编辑工具下载地址Sublime Text 3
下载地址: http://www.sublimetext.com/3 Sublime Text 是一个代码编辑器(Sublime Text 3是收费软件,但可以无限期试用),也是HTML和散文先进的文 ...
- 基于SVG的web页面图形绘制API介绍
转自:http://blog.csdn.net/jia20003/article/details/9185449 一:什么是SVG SVG是1999由W3C发布的2D图形描述语言,纯基于XML格式的标 ...
- 关于MySql的DBHelper类以及数据分页
前端: <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix=& ...
- android学习笔记55——ContentProvider_2
实现ContentProvider 创建ContentProvider的步骤: 1.开发一个ContentProvider的子类,该子类需要实现增.删.改.查等方法: 2.在AndroidMainfe ...
- [platform]linux platform device/driver(三)--Platform Device和Platform_driver注册过程之代码对比
转自:http://blog.csdn.net/thl789/article/details/6723350 Linux 2.6的设备驱动模型中,所有的device都是通过Bus相连.device_r ...
- ruby&mongo_mapper
mongo_mapper&ruby Mongomapper 用户mongo数据库配置,以及其提供了很多mongo的方法,可以很好地用来 对mongo相关封装和操作. 环境准备:gem inst ...
- c#读取快递100查询返回的JSON信息
{"message":"ok","nu":"1105016801203","companytype" ...
- mybatis配置优化
1.加入日志log4j 1)加入jar包:log4j-1.2.17.jar 2)加入log4j配置文件: 可以使properties或者xml形式 log4j.rootLogger = DEBUG,C ...
- 顽皮的小球II
感谢世外苏子恒同学提供 uses crt; var x,y,xd,yd,xb,yb:shortint; k:char; procedure intro; begin clrscr; ...