共用方式為


HOW TO:啟用 XML Web Service 的探索

Web 服務可以透過下列方式發行至潛在用戶端:

  • 使用具有 .disco 副檔名的 XML 探索檔。

  • 使用指定 .vsdisco 副檔名的 URL。

  • 以 ?DISCO 查詢字串使用 Web 服務。

本主題會說明如何設定前兩個探索機制。本主題不會示範如何以 ?DISCO 查詢字串啟用 Web 服務要求,因為這個方法已經自動提供。如需這些選項的說明,請參閱 XML Web Service 發行和部署

若要發行 Web 服務的靜態探索文件

  1. 使用您最愛的編輯器建立 XML 文件,並將 ?xml version="1.0" ? 項目加入至第一行。

  2. 在 XML 文件中,加入 discovery 項目,例如:

    <disco:discovery xmlns:disco="https://schemas.xmlsoap.org/disco/">
    </disco:discovery>
    
  3. discovery 項目中,加入服務描述、XSD 結構描述和其他探索文件的參考。

    您可以依照需要加入多個要公開的參考。服務描述參考是透過加入 contractRef 項目與 https://schemas.xmlsoap.org/disco/scl/ XML 命名空間,在探索文件中指定。同樣的,其他探索文件和 XSD 結構描述的參考是分別透過 discoveryRefschemaRef XML 項目指定。對於 XSD 結構描述參考,必須指定 XML 命名空間 https://schemas.xmlsoap.org/disco/schema。對於所有三種類型的參考文件,請使用 ref 屬性指定文件位置。下列程式碼範例有探索文件、服務描述和 XSD 結構描述的參考。

    <?xml version="1.0"?>
    <discovery xmlns="https://schemas.xmlsoap.org/disco/">
    <discoveryRef ref="/Folder/Default.disco"/>
    <contractRef ref="http://MyWebServer/UserName.asmx?WSDL"
                 docRef="Service.htm"
                 xmlns="https://schemas.xmlsoap.org/disco/scl/"/>
    <schemaRef ref="Schema.xsd"
               xmlns="https://schemas.xmlsoap.org/disco/schema/"/>
    </discovery>
    

    參考可以相對於探索文件所在的目錄 (如 discoveryRef 項目所示),或相對於 URI (如 contractRef 項目所示)。

  4. 將探索文件複製到 Web 伺服器上的虛擬目錄,將它部署至 Web 伺服器。

  5. (選擇性) 如果要讓潛在消費者藉由指定 IIS 應用程式 (而不需要指定文件) 巡覽至 URL,您可以在 IIS 應用程式預設頁面中加入連結。好處是潛在消費者不需要知道任何探索文件的名稱。然後在探索處理序期間,使用者可以提供如下的 URL:

    http://MyWebServer/MyWebApplication
    

    如果 Web 應用程式的預設頁面是 HTML 頁面,您可以在 Web 伺服器預設網頁的 head 項目中加入探索文件的連結。例如,如果將探索文件命名為 MyWebService.disco 並放在預設頁面所在的目錄中,您必須將下列項目放在預設網頁中:

    <HEAD>
    <link type='text/xml' rel='alternate' href='MyWebService.disco'/>
    </HEAD>
    

    如果 Web 應用程式的預設頁面是 XML 文件,您可以在 Web 伺服器預設網頁的 head 項目中加入探索文件的連結。例如,如果將探索文件命名為 MyWebService.disco 並放在預設頁面所在的目錄中,您必須將下列項目放在預設網頁上方:

    <?xml-stylesheet type="text/xml" alternate="yes" href="MyWebService.disco" ?>
    

若要啟用 Web 服務的動態探索

  • 若要開啟 Web 伺服器的動態探索,請加入下列 <add> 項目來修改 machine.config 檔案。忽略下列範例中的分行符號,因為 type 屬性必須在同一行。

    <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>
    
    Note注意:

    開啟動態探索時,在 Web 伺服器上,所要求 URL 下的所有 Web 服務和探索文件都是可搜尋的。因此,開啟動態探索時必須小心,因為如果 Web 伺服器所在的網路未使用防火牆和其他安全性功能,可能會公開敏感性資料。

請參閱

概念

XML Web Service 發行和部署
使用 ASP.NET 建立之 XML Web Service 的組態選項

其他資源

使用 ASP.NET 的 XML Web Service

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.