选择显示字体大小

asp.net创建web服务之发布和部署

    部署一个xml web服务包括复制.asmx文件和任何xml web服务使用的汇编文件,而不要把microsoft.net framework的一部分作为web服务器上的虚拟目录。有关如何部署一个xml web服务的信息,请参见"部署xml web服务"。xml web服务对使用发现机制的用户适用。 用户可以浏览一个特殊的发现文件或web服务器的根来定位发现文件。从这些文件中,他们可以判断那些服务对他们来说有用。

  部署xml web服务

  部署一个xml web服务包括把.asmx文件和任何xml web服务使用的汇编文件,而不是microsoft.net framework的一部分,复制到web服务器上。

  例如,假设你把一个xml web服务命名为stockservices。为了部署xml web服务,你需要在你的web服务器上创建一个虚拟目录和把xml web服务的.asmx文件放入这个目录。这个虚拟目录还应该是一个iis web应用程序,虽然它不是必需的。一个典型的部署将有下面的目录结构:

\.netpub
\wwwroot
\stockservices
stockservices.asmx
\bin

  你的xml web服务使用的汇编不是microsoft.net framework一部分的。

  xml web服务发布的条目

  当你发布一个xml web服务时,下列条目用来部署一个web服务器

条目描述
web应用程序目录作为你的xml web服务的根目录。所有的文件都存放在这个目录中。这个目录应该被标记为一个iis web应用程序所用。
<myxmlwebservice>.asmx 文件调用xml web服务的客户端的基本url。这个文件可以为任何有效的文件名。
<myxmlwebservice>.disco文件(可选的)作为xml web服务的发现机制。.disco文件不会自动地为xml web服务创建。这个文件可以为任何有效的文件名。
web.config文件 (可选择的)如果你需要覆盖默认配置设置,你可以包含一个web.config文件。xml web服务使用这个配置文件来允许系统的定制和可扩展性。例如,如果在系统中你的xml web服务需要验证而其他的web应用程序不需要的话,你可以提供一个该xml web服务特定的web.config文件。
\bin目录 包含用于这个xml web服务的二进制文件。如果你的xml web服务类和.asmx文件不在同一个目录下,那么包含类的部件必须在\bin目录中。

  发现一个xml web服务

  xml web服务发现是定位和询问xml web服务描述的过程,这是访问一个xml web服务的预备步骤。通过发现过程,xml web服务客户端可以在设计时得知一个xml web服务存在,它能做什么以及如何适当的与之交互。

  可以在xml web服务发布一个.disco文件时编程发现,.disco是一个包含与其它发现文档、xsd模式和服务描述连接的xml文档。换句话说,使用asp.net创建的xml web服务自动地有提供一个产生发现文档的能力。当使用带有?disco的url访问时,一个发现文档自动地为xml web服务生成。例如,如果到一个xml web服务的url是www.contoso.com/getquote.asmx,然后自动以www.contoso.com/getquote.asmx?disco生成一个发现文档。

  为了使能发现一个xml web服务:

  使用你喜欢的编辑器创建一个xml文档,把标记<?xml version="1.0"?>添加到第一行。

  在这个xml文档内添加一个<discovery>元素,如:

<disco:discovery xmlns:disco="http://schemas.xmlsoap.org/disco/">
</disco:discovery>

  在<discovery>元素内,添加到服务描述、xsd模式和其他发现文档的引用。

  你可以添加对任意你想公开的引用。服务描述引用在一个发现文档中通过使用http://schemas.xmlsoap.org/disco/scl/ xml域名空间添加一个<contractref>元素来指定。同样地,对其它的发现文档和xsd模式的引用分别通过添加<discoveryref>和<schemaref> xml元素来指定。对于xsd模式引用,必须指定xml域名空间http://schemas.xmlsoap.org/disco/schema。。下面的代码示例有对于发现文档、服务描述和一个xsd模式的引用。

<?xml version="1.0"?>
<discovery xmlns="http://schemas.xmlsoap.org/disco/">
<discoveryref ref="/folder/default.disco"/>
<contractref ref="http://mywebserver/username.asmx?wsdl"
docref="service.htm"
xmlns="http://schemas.xmlsoap.org/disco/scl/"/>
<schemaref ref="schema.xsd"
xmlns="http://schemas.xmlsoap.org/disco/schema/"/>
</discovery>

  引用可以与发现文档存在于的目录有关,就如在discoveryref元素所示,或与一个uri有关,就如在contractref元素所示。

  通过复制发现文档到web服务器的一个虚拟目录下,把发现文档部署到这台web服务器上。

  选择性地,如果你想要通过指定一个iis应用程序而不需要指定一个文档来允许预期消耗者导航到一个url,那么你可以添加一个到iis应用程序的默认的页面。这对预期消耗者有益,他们不必知道任意发现文档的名称。用户可以提供想下面发现过程中的url:
http://mywebserver/mywebapplication

  如果用于web应用程序的默认页面是一个html页面:

  在用于web服务器的默认web的页面的<head>标记中添加一个链接到发现文档。例如,如果你命名你的发现文档mywebservice.disco并把它放入与默认页面相同的目录中,你需要放置下面的标记到默认的web页面中。

<head>
<link type='text/xml' rel='alternate' href='mywebservice.disco'/>
</head>

  如果用于web应用程序的默认页面是一个xml文档:

  在用于web服务器的默认web的页面的<head>标记中添加一个链接到发现文档。例如,如果你命名你的发现文档mywebservice.disco并把它放入与默认页面相同的目录中,你需要放置下面的代码到默认的web页面的顶端。

<?xml-stylesheet type="text/xml" alternate="yes" href="mywebservice.disco" ?>
 
  选择性地,如果你使用visual studio.net,你可以开启动态的发现来允许xml web服务客户端应用程序来在一个没有创建发现文档的web服务器上发现可用的xml web服务。当动态发现开启的时候,客户应用程序在add web reference对话框中指定一个引用带有.vsdisco部分的文件的url,例如www.contoso.com/default.vsdisco,来代替特定的发现文档。

  为了开启用于一个web服务器的动态发现,要修改machine.config来添加下面的<add>元素。

<configuration>
<system.web
<httphandlers>
<add verb="*" path="*.vsdisco"
type="system.web.services.discovery.discoveryrequesthandler,
system.web.services, version=1.0.3300.0,
culture=neutral, publickeytoken=b03f5f7f11d50a3a"
validate="false"/>
</httphandlers>
</system.web
</configuration>

  注意:当动态发现开启的时候,所有的xml web服务和存在于web服务器的发现文档都是可发现的。因此,当开启动态发现时必须小心,因为如果web服务器不在带有隔火墙的安全网络中的话,它可能会在无意中暴露敏感数据。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons