COM+ Web 服務:通過複選框路由到 XML Web Services (轉)9

來源:互聯網
上載者:User
services|web|xml|複選框 編譯並運行此 Visual Basic .NET 應用程式,將產生與前面兩個 VBScript CAO 樣本相同的輸出內容。

因為伺服器應用程式將組件發布為 CAO 和 WKO 兩種形式,所以由遠程用戶端選擇啟用方法。雖然可能只對學術研究有意義,但是單一用戶端電腦確實可以使用同一組件的兩種遠程啟用方法,訪問遠程伺服器上同一個 SOAP 發布的虛擬根。

SOAP 與 DCOM 的局限性和區別
.NET Remoting 的目的之一是提供豐富的分布式環境,使開發人員能夠在此環境中對序列化協議(格式化程式)和網路通訊協定(頻道)進行組合與匹配。.NET 架構 1.0 版本中的 COM+ Web 服務僅支援一種格式化程式 (SOAP) 和一種頻道 (HTTP)。這並不是說其他頻道和格式化程式不能使用 ServicedComponents 或 COM+,而是說沒有自動設定為這些備用頻道和格式化程式提供用戶端和伺服器端點。

目前已經有用各種語言編寫的大量 COM+ 組件。如果可以使用 COM+ Web 服務將所有這些組件啟用為 Web 服務,那就太好了。但正如使用 .NET 架構 1.0 版本一樣,並非所有現有的 COM 組件都可以使用 COM+ Web 服務。雖然多數具備類型庫的現有組件可以正常工作,但是此版本不支援某些組件,例如 Windows 指令碼組件 (WSC) 組件。某些複雜的類型庫(其介面具有多重繼承層級,或依賴於多個類型庫)可能無法正常工作。此外,由於類型庫轉換的局限性,只有類型庫中預設的介面才可以作為 Web 服務。

COM+ Web 服務並不是適用於所有現有非託管 COM+ 組件的完整解決方案。現有非託管 COM+ 組件中有一大部分是使用多種程式設計語言編寫而成的,由於不可能測試所有可能的類型庫(由支援 COM+ 的各種編譯器產生),因此某些非託管 COM+ 組件不能使用 COM+ Web 服務正確發布。COM+ Web 服務的目的之一就是最大程度減少做出這種評估所需的時間和精力。只需將非託管 COM+ 組件發布為 COM+ Web 服務,開發人員就可以迅速判斷是否可以將其用作 Web 服務。如果遇到問題,則可以通過若干替代方法來處理現有的非託管組件。這些替代方法包括編寫託管或非託管的封裝程式,這些封裝程式提供的相容介面發行就緒為 Web 服務。多數情況下,編寫這樣的封裝程式的工作量比重新編寫整個組件要少得多。這就儘可能減少了將現有的應用程式應用為 XML Web Services 所需的開發與測試工作。

使用非託管(Visual Basic 6.0 或 Visual C++)伺服器時,通常越早綁定託管用戶端應用程式和 SOAP,越能更好地工作。在某些情況下,如果將產生的中繼資料用作後期綁定的跨電腦遠程代理程式,它可能無法正常工作。

在通過 HTTP 使用 SOAP 格式化程式的情況下,仍然可以使用許多選項(取決於目標部署環境)。COM+ Web 服務為伺服器和 CAO 用戶端配置產生基於 XML 的遠程設定檔。(WKO 啟用的 URL 引用已嵌入產生的用戶端代理,因此不需要設定檔。)COM+ Web 服務產生直觀的功能性設定檔,可由使用者自訂以滿足任何通過 HTTP 的直接 SOAP 通訊所不能滿足的需求。可進行自訂的地區包括使用者身分識別驗證,如下例所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.runtime.remoting>
  <application>
   <service>
    <wellknown mode="SingleCall" type="SCTrans.SCTransSQL, SCTrans,
      Version=0.0.0.0, Culture=neutral,
      PublicKeyToken=9c6052078b454cee"
      objectUri="SCTrans.SCTransSQL.soap" />
    <activated type="SCTrans.SCTransSQL, SCTrans" />
   </service>
  </application>
</system.runtime.remoting>
<identity impersonate="true" />
</configuration>

上例中添加的反白的行可以在啟用 COM+ 組件(通過 SOAP 調用)時使用使用者的身份標識。(預設情況下,IIS 虛擬根使用標準的 IIS 身分識別驗證。)這樣在使用 SOAP 時可以實現 COM+ 的分區(一種 COM+ Windows .NET Server 功能),從而可根據使用者的身份標識來實際調用不同的組件。

另一個可以自訂的地區包括用戶端啟用物件的生存期管理,如下例所示:


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。