共用方式為


啟用 XML Web Service 的探索

XML Web Service 探索是找尋及詢問 XML Web Service 描述的處理,為存取 XML Web Service 的基本步驟。XML Web Service 用戶端就是透過探索處理,在設計階段了解 XML Web Service 是否存在、它所具備的功能,以及如何適當地與其互動。

XML Web Service 發行 .disco 檔案時可啟動程式設計探索。.disco 檔案是 XML文件,其中包含與其他探索文件、XSD 結構描述和服務描述的連結。另一個方法是讓使用 ASP.NET 建立的 XML Web Service 自動產生探索文件:使用 URL 加上查詢字串提供的 ?DISCO 存取 XML Web Service 時,會自動替 XML Web Service 產生探索文件。例如,如果連至 XML Web Service 的 URL 為 www.contoso.com/getquote.asmx,則自動產生的探索文件 URL 為 www.contoso.com/getquote.asmx?DISCO。

若要啟用 XML Web Service 的探索

  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 結構描述的參考,也是分別加入 <discoveryRef><schemaRef> 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 項目中所顯示的;或與 URL 關聯,正如在 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" ?>
    
  6. 如果您使用 Visual Studio .NET,可以開啟動態探索,讓 XML Web Service 用戶端應用程式探索 Web 伺服器上可用的 XML Web Service,而不用建立探索文件。開啟動態探索時,用戶端應用程式會指定 URL 參考以包含 .vsdisco 區段的檔案,例如 [加入 Web 參考] 對話方塊的 www.contoso.com/default.vsdisco,而不是指定特定探索文件。

    若要為 Web 伺服器開啟動態探索,請修改 machine.config,加入下列 <add> 項目。請忽略下列範例中的分行符號,因為 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>
    

    **注意   **動態探索開啟時,可以探索要求的 URL 之下 Web 伺服器上所有的 XML Web Service 和探索文件。因此,開啟動態探索時必須小心,因為如果 Web 伺服器在沒有防火牆、或使用其他安全性功能的網路上,就可能不小心公開敏感資料。

請參閱

部署 XML Web Service | 使用 ASP.NET 建立之 XML Web Service 的組態選項 | 使用 ASP.NET 建置 XML Web Service