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,布布扣,bubuko.com

时间: 2024-10-10 05:00:28

ArcEngine编写WebService的相关文章

ColdFusion 编写WebService 示例

1.开发 Web Services,编写cfcdemo.cfc组件,代码如下: <cfcomponent style ="document" namespace = "http://www.mycompany.com/" serviceportname = "RestrictedEmpInfo" porttypename = "RestrictedEmpInfo" bindingname = "myns:Res

VS2010编写WebService与在IIS的发布&lt;之简单讲解&gt;

工具VS2010,window环境win7 一:Webservice的创建与方法查看调用 1.新建空web应用程序项目 2.新建web服务 3.自动生成 4.直接跑起来,可以看到有2个方法 5.点击HelloWorld_1方法,点击调用这个方法 6.如下 7.查看详细信息(方法,参数等) 二:Webservice发布到IIS上 1.项目发布 2.发布web 3.VS中提示发布成功 4.到文件夹中查看发布成功的文件 bin中的文件 5.如果没有安装IIS,就按下面步骤安装 打开IIS 6.打开II

JAX-WS编写webservice

1.新建一个web工程 2.创建要发布的类 package com.linjian.webservice; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService; @WebService(serviceName="Hello",targetNamespace="http://www.joinhealth.cn&

编写webservice客户端,调用wsdl

编写客户端 [参考帖子] http://blog.csdn.net/wangjinwei6912/article/details/8512598  报错:org.xml.sax.SAXException: Bad envelope tag: definitions http://stackoverflow.com/questions/5548282/org-xml-sax-saxexception-bad-envelope-tag-definitions http://bbs.csdn.net/

WebService未能加载文件或程序集&ldquo;ESRI.ArcGIS.XXX&rdquo;或它的某一个依赖项

开发环境:Windows7旗舰版64bit.VisualStudio2008 With SP1.ArcEngine10.0.NetFrameWork4.0.IIS7和C#开发语言. 编写ArcEngine编写WebService分析功能,在进行编译运行时发生错误. 错误提示:未能加载文件或程序集"ESRI.ArcGIS.XXX, Version=10.0.0.0, XXX"或它的某一个依赖项.系统找不到指定的文件. 在网上查看了很久,说是将生成平台修改为X86,但是我的这里没有此选项,

利用Java编写简单的WebService实例

使用Axis编写WebService比较简单,就我的理解,WebService的实现代码和编写Java代码其实没有什么区别,主要是将哪些Java类发布为WebService.下面是一个从编写测试例子到发布WebService,以及编写测试代码的过程介绍. 本例子的WebService提供了两个方法,分别是sayHello和sayHelloToPerson,第一个只是返回一个"Hello"字符串,没有参数,第二个函数接受一个字符串作为参数,返回"Hello 参数值",

java webservice

1.1 [什么是webservice] 1.1.1 什么是webservice? l Web service 即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术即跨平台远程调用技术. l 采用标准SOAP(Simple Object Access Protocol)  协议传输,soap属于w3c标准.Soap协议是基于http的应用层协议,soap协议传输是xml数据. l 采用wsdl作为描述语言即webservice使用说明书,wsdl属w3c标准. l xml是webserv

WebService和AngularJS实现模糊过滤查询

[概要] 网上看到一个不错的帖子,用WebService获取json,然后在前端使用AngularJs进行过滤搜索,看完文章后,按自己的想法,写了一个demo,给大家讨论参考,本人技术一般,还望大家多加指点. [术语] WebService:是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式的互操作的应用程序 AngularJS:通过为开发者呈现一个更高层次的抽象来简

WebService之JDK中wsimport命令

1.编写WebService类,使用@WebService注解 package test; import javax.jws.WebService; @WebService public class HelloServiceImpl{ public String say(String name) { return "Hello "+name; } } WebService类 2.使用main方法发布WebService package test; import javax.xml.ws