知识大全 ASP.NET创建Web服务之发布和部署

Posted 文件

篇首语:人永远是要学习的。死的时候,才是毕业的时候。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET创建Web服务之发布和部署相关的知识,希望对你有一定的参考价值。

ASP.NET创建Web服务之发布和部署  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

部署一个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应用程序 虽然它不是必需的 一个典型的部署将有下面的目录结构 \\Inetpub\\Wwwroot\\StockServicesStockServices 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服务创建 这个文件可以为任何有效的文件名 nfig文件 (可选择的)如果你需要覆蓋默认配置设置 你可以包含一个nfig文件 XML Web服务使用这个配置文件来允许系统的定制和可扩展性 例如 如果在系统中你的XML Web服务需要验证而其他的Web应用程序不需要的话 你可以提供一个该XML Web服务特定的nfig文件 \\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是/getquote asmx 然后自动以/getquote asmx?DISCO生成一个发现文档   为了使能发现一个XML Web服务   使用你喜欢的编辑器创建一个XML文档 把标记<?xml version= ?>添加到第一行   在这个XML文档内添加一个<discovery>元素 如: <disco:discovery xmlns:disco= ></disco:discovery>  在<discovery>元素内 添加到服务描述 XSD模式和其他发现文档的引用   你可以添加对任意你想公开的引用 服务描述引用在一个发现文档中通过使用 XML域名空间添加一个<contractRef>元素来指定 同样地 对其它的发现文档和XSD模式的引用分别通过添加<discoveryRef>和<schemaRef> XML元素来指定 对于XSD模式引用 必须指定XML域名空间 下面的代码示例有对于发现文档 服务描述和一个XSD模式的引用 <?xml version= ?><discovery xmlns= ><discoveryRef ref= /Folder/Default disco /><contractRef ref= docRef= xmlns= /><schemaRef ref= Schema xsd xmlns= /></discovery>  引用可以与发现文档存在于的目录有关 就如在discoveryRef元素所示 或与一个URI有关 就如在contractRef元素所示   通过复制发现文档到Web服务器的一个虚拟目录下 把发现文档部署到这台Web服务器上   选择性地 如果你想要通过指定一个IIS应用程序而不需要指定一个文档来允许预期消耗者导航到一个URL 那么你可以添加一个到IIS应用程序的默认的页面 这对预期消耗者有益 他们不必知道任意发现文档的名称 用户可以提供想下面发现过程中的URL   如果用于Web应用程序的默认页面是一个HTML页面:  在用于Web服务器的默认Web的页面的<head>标记中添加一个链接到发现文档。.wingwiT例如,如果你命名你的发现文档MyWebService.disco并把它放入与默认页面相同的目录中,你需要放置下面的标记到默认的Web页面中。 <HEAD><link type=\'text/xml\' rel=\'alternate\' /></HEAD>  如果用于Web应用程序的默认页面是一个XML文档:  在用于Web服务器的默认Web的页面的<head>标记中添加一个链接到发现文档。例如,如果你命名你的发现文档MyWebService.disco并把它放入与默认页面相同的目录中,你需要放置下面的代码到默认的Web页面的顶端。 <?xml-stylesheet type=text/xml alternate="yes" ?>    选择性地,如果你使用Visual Studio.NET,你可以开启动态的发现来允许XML Web服务客户端应用程序来在一个没有创建发现文档的Web服务器上发现可用的XML Web服务。当动态发现开启的时候,客户应用程序在Add Web Reference对话框中指定一个引用带有.vsdisco部分的文件的URL,例如/default.vsdisco,来代替特定的发现文档。  为了开启用于一个Web服务器的动态发现,要修改nfig来添加下面的<add>元素。 <configuration><system.web><Handlers><add verb="*" path="*.vsdisco"type="System.Web.Services.Discovery.DiscoveryRequestHandler,System.Web.Services, Version=1.0.3300.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"validate="false"/></Handlers></system.web></configuration>

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

  用ASP.NET创建的XML Web服务的配置选择  XML Web服务的配置遵循和所有的ASP.NET Web应用程序使用的相同的范式。ASP.NET配置是一个基于XML的文本文件配置结构,既强大又可扩展。配置文件只是一组XML元素,描述用于Microsoft.NET Framework的特定技术特性的配置选择。就 XML Web服务而言,配置选择是封装在配置文件的webServices XML元素中的。  配置消息传送协议和服务帮助页面  用于XML Web服务消息传送协议和服务帮助页面在配置文件的<webServices>元素下的<protocols> XML元素中配置。通过添加<add>和<remove>元素来进行配置,制定配置文件范围内的那个设置有效。<add>元素明确地添加对配置文件范围内的设置的支持,而<remove>元素移除对更高的配置等级的支持。例如,可以使用nfig文件中的<add>元素在机器级别添加一个协议设置,然后使用nfig文件中的<remove>元素移除对某个Web应用程序的设置。下面的是<add>和<remove>元素的语法:

<add|remove name=protocol name />  <add>和<remove>元素的name属性有下列选项: 设置 描述 HttpSoap 支持用于XML Web服务的SOAP协议的控件。默认情况下安装已经添加了这个支持。 HttpGet 支持用于XML Web服务的HTTP - GET协议的控件。默认情况下安装不添加这个支持。 HttpPost 支持用于XML Web服务的HTTP - POST协议的控件,不管请求从何起源。默认情况下安装不添加这个支持。 HttpPostLocalhost 当请求来源于本地计算机的时候,支持用于XML Web服务的HTTP - POST协议的控件。如果HttpPost添加到当前配置中,那么这个设置就无效了。默认情况下安装已经添加了这个支持。 Documentation 指定一个服务帮助页面是否显示。默认情况下安装已经添加了这个支持。  注意:.NET Framework 1.0版支持HttpSoap、HttpGet、HttpPost和Documentation设置和所有默认的机器级别能够使用的设置。  安全建议  在使用用于XML Web服务的HTTP-GET或HTTP-POST协议之前,你应该知道这样做可能把它暴露给无意的调用。例如,一个未料想到的用户可能接收一个带有XML Web服务链接的电子邮件,点击链接,使用电子邮件中提供的参数调用XML Web服务。你应该在使用HTTP-GET或HTTP-POST协议之前,你应该考虑这种无意中的调用是否有害。  使HTTP-GET和HTTP-POST协议对于整机失效  使用你习惯的文本编辑程序打开nfig文件。(nfig文件默认的地点在安装目录的\\Config子目录下。)  如果webServices部分中有对HTTP-GET和HTTP-POST的支持,那么就把这几行注释掉。在这样做以后,webServices部分应该如下: <webServices><protocols><add name=HttpSoap/> <!-- <add name=HttpPost/> --> <!-- <add name=HttpGet/> --><add name=Documentation/><add name=HttpPostLocalhost/></protocols></webServices>  保存nfig。  在下一次请求这台机器上的XML Web服务的时候,配置的改变将生效。  使用于单独Web应用程序的协议支持失效  使用你习惯的编辑程序打开Web应用程序根目录下的nfig。(如果无存在nfig文件,那么就新建一个。)  修改nfig的webServices部分,明确的移除协议设置。下面的示例明确地移除HTTP- POST和HTTP- GET协议: <webServices><protocols><remove name=HttpPost /><remove name=HttpGet /></protocols></webServices>  保存nfig。   在下一次请求这个Web应用程序的XML Web服务的时候,配置的改变将生效。  服务帮助页面  在一个Web浏览器中不使用任何参数导航到XML Web服务的URL能让客户查看这个XML Web服务的服务帮助页面,如果这个服务进行了这样的配置。服务帮助页面默认情况下包含关于与XML Web服务通讯的方法以及XML Web服务方法的基本信息。因为服务帮助页面仅仅是一个ASP.NET Web表单,它可以被替换或者被修改成包含类似于公司标识这样的条目。服务帮助页面的文件名在配置文件的<wsdlHelpGenerator>XML元素中指定。服务帮助页面只用来显示有在<protocols> XML元素指定的Documentation协议的配置文件范围内的XML Web服务。默认情况下,Documentation在nfig文件中指定。  使服务帮助页面对于一个单独的Web应用程序失效。  使用你习惯的编辑程序打开Web应用程序根目录下的nfig。(如果无存在nfig文件,那么就新建一个。)  修改nfig的webServices部分,明确的移除Documentation协议。 <webServices><protocols><remove name=Documentation /></protocols></webServices>  保存nfig。  在下一次请求这个Web应用程序的XML Web服务的时候,配置的改变将生效。  注意取消Documentation协议还禁止任何Web应用程序内用于XML Web服务的WSDL文件生成。这防止客户端产生代理类,除非创建一个自定义WSDL文件来为为它们设置。为了在Web应用程序中保留用于XML Web服务的WSDL文件生成,而不提供任何关于XML Web服务的可读的信息,那么你可以添加一个<wsdlHelpGenerator>元素到Web应用程序的nfig文件中,设置href属性为你创建的一个空白的HTML页面。下面的代码示例是一个nfig文件的摘录,设置服务帮助页面为文件。 <webServices><wsdlHelpGenerator HREF="docs/MyBlank.asp"/></webServices> cha138/Article/program/net/201311/13643

相关参考

知识大全 ASP.NET创建Web服务之设计方针

ASP.NET创建Web服务之设计方针  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用ASP

知识大全 ASP.NET创建Web服务之使用事务

ASP.NET创建Web服务之使用事务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  支持XML

知识大全 ASP.NET创建Web服务之XML基础结构

ASP.NET创建Web服务之XML基础结构  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  为了

知识大全 ASP.NET入门教程 12.4 创建Web服务[2]

ASP.NET入门教程12.4创建Web服务[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&

知识大全 ASP.NET入门教程 12.4 创建Web服务[1]

ASP.NET入门教程12.4创建Web服务[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&

知识大全 ASP.NET入门教程 12.4 创建Web服务[3]

ASP.NET入门教程12.4创建Web服务[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&

知识大全 ASP.NET创建XML Web服务全接触

ASP.NET创建XMLWeb服务全接触  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  XMLW

知识大全 ASP.NET2.0服务器控件之创建复杂属性

ASP.NET2.0服务器控件之创建复杂属性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  页面

知识大全 基于ASP.NET的Web动态控件创建

基于ASP.NET的Web动态控件创建  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要web

知识大全 ASP.NET服务器控件之视图状态

ASP.NET服务器控件之视图状态  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  为Web页面及