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 ...
随机推荐
- oracle 如何查询过去某个时间点的记录(应用于某个时间点的误操作,回滚到之前的操作)
这个功能是在自己误操作,将某些数据更改错了,你想恢复更改错之前的数据,这个时候你可以使用这种方式 不过建议要小心更改数据,如果实在有必要去更新,请先备份数据表,不到万不得以才可以这么做. SE ...
- 学习laravel之路由问题 404
今天配置路由的时候,只有原来的自带路由可用: Route::get('/', function(){ return View::make('hello');}); 再网上搜索了办法:来自:htt ...
- ruby 查询mysql方法
首先对需要使用的数据库进行封装,便于使用:数据库表封装源码: mysqlapi.rb #业务涉及的数据库的配置ActiveRecord::Base$db1={:adapter => " ...
- 实用SQL
下列语句部分是MsSql语句,不可以在access中使用.SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,U ...
- help和dir函数
help()函数是查看函数或模块用途的详细说明,比如:help('re'),help('re.split') 而dir()函数是查看函数或模块内的操作方法都有什么,输出的是方法列表.
- Angular SEO方案
1.如果是java web项目,可以直接使用AngularSEO Filter. 官网地址 :http://www.angularseo.net/#about <filter> <f ...
- flask 添加日志
def add_error_handler(app): for exception in default_exceptions: app.register_error_handler(exceptio ...
- ThinkPHP5.0完全开发手册
http://www.kancloud.cn/manual/thinkphp5/118006 www WEB部署目录(或者子目录) ├─composer.json composer定 ...
- set JAVA_HOME in RHEL/CentOS
3.3. Install OpenJDK on Red Hat Enterprise Linux Introduction OpenJDK is one of many Java Developmen ...
- 查看.NET Service Pack版本
原文地址:如何确定已安装的 Microsoft .NET Framework 版本和 Service Pack 级别 使用以下注册表信息确定已安装的 Microsoft .NET Framework ...