小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Microsoft SOAP Toolkit v2_0 常見問題解答(SOAP 技術文章)

 希望蠟炬 2013-01-22

1.1 Soap Toolkit 最新版本是什么?

2001 年 6 月 21 日發(fā)布的 SP2 2.0 版,可從http://msdn.microsoft.com/library/default.asp?url=/downloads/list/websrv.asp 站點獲得此版本。

1.2 如何運行 Soap跟蹤實用工具?

使用 MSSOAPT 在服務器端跟蹤:

  • 修改 WSDL 中 soap:address 元素的位置屬性,將客戶端定向到 8080 端口。例如,如果 WSDL 包含 <http://MyServer/VDir/Service.wsdl>,將其更改為 <http://MyServer:8080/VDir/Service.wsdl>。

  • 在服務器端運行 MSSOAPT。

  • 選擇文件、新建、格式化跟蹤(如果不需要看到 HTTP 標頭)或文件、新的未格式化跟蹤(如果希望看到諸如 ContentType 和 SoapAction 這樣的 HTTP 標頭)。

  • 單擊 Trace Setup 對話框上的 OK 以接受默認值。

現(xiàn)在,向 WSDL 中指定地址提出的所有請求/指定地址返回的所有響應都會在跟蹤中出現(xiàn)。

使用 MSSOAPT 在客戶端跟蹤:

  • 生成服務的 WSDL 文檔的本地副本。

  • 修改 WSDL 中 soap:address 元素的位置屬性,將客戶端定向到 localhost:8080,并對當前主機和端口進行說明。例如,如果 WSDL 含有 ,將其更改為 ,并對 "MyServer" 進行說明。

  • 在客戶端運行 MSSOAPT。

  • 選擇文件、新建、格式化跟蹤(如果不需要看到 HTTP 標頭)或文件、新的未格式化跟蹤(如果希望看到 HTTP 標頭)。

  • 在 Trace Setup 對話框,輸入步驟 2 中說明的主機和端口作為目標主機和目標端口值,然后單擊 OK。

現(xiàn)在,來往于客戶端的任何請求/響應都會在跟蹤中出現(xiàn)。

1.3 要使 SSL 運行,必須做什么?

假設服務器設置為需要 SSL,您只需將 WSDL 文件中的 URL 更改(或者,如果您正在使用低級別接口,更改 Soap Connector URL)為以 HTTPS 開頭,而不以 HTTP 開頭。不必在客戶端設置 UseSSL 屬性。如果這樣做不起作用,最常見的原因就是服務器證書已經(jīng)過期,或是服務器需要客戶證書。注意,我們經(jīng)常聽說“使用 HTTP URL 運行成功,但使用 HTTPS URL 運行失敗”。如果虛擬根目錄設置為要求 SSL,那么使用 HTTP 就不會運行,因此,本語句意味著服務器沒有設置為要求 SSL。

其他一些常見問題:

  • 請確保證書有效且有可信的根目錄—打開此證書(雙擊它)并檢查是否有警告。

  • 請確保您的服務器正確配置了 ssl—服務器端證書是有效的,有可信的根目錄,而且它的根目錄安裝在 LOCAL_MACHINE 存儲區(qū)。

  • 不能將 localhost 用作主機名—URL 中的主機名應該與服務器端證書中的主機名相匹配。

  • 如果您的機器上沒有 mmc 工具,要查看證書,可以使用 IE—步驟為 Tools/Options/Content/Certificates/。

  • 如果將服務器 vdir 設置為需要客戶證書—可以通過 Microsoft Internet Explorer 訪問 vdir 來檢查可使用哪些客戶證書。IE 會顯示一個客戶證書列表,這些客戶證書具有服務器端信任的根目錄。如果您有 IE 5.5,在安全性設置中禁用 "Miscellaneous\Don't prompt for client certificates selection when no certificates or only one certificate exists" 標志。

在 MSDN 文章中,可以找到對這些問題及其他問題的準確解釋,用 Microsoft SOAP Toolkit 2.0 構建安全的 Web 服務。

1.4 為什么沒有安裝 SMO Generator?

查找到 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual Basic\ProductDir" 注冊表項時,安裝 SMO Generator 的選項應該是可見的。請使用 regedit 查看 該項是否存在。

1.6 如何使 Soap Toolkit 與 Apache 進行交互?

在 2.1 版之前,Apache 要求所有 Soap 參數(shù)的 xsi:type 屬性。而且,Soap Toolkit 通常不發(fā)送 Soap 消息中的 xsi:type。如果部署說明符中定義了類型,Apache 2.1 版就不再需要 xsi.type 屬性。但是,Apache 服務還不使用 WSDL,因此,必須為 Soap Toolkit 客戶端創(chuàng)建一個 WSDL 文件與 Apache 服務器進行對話。已經(jīng)使用 Apache 2.2 成功測試了 RTM Soap Toolkit。

另一個有時起作用的竅門是在生成 WSDL 文件后對其進行編輯,將 Apache 出現(xiàn)問題的類型更改為 "xsd:anyType"。這會使該工具包將參數(shù)作為變量,因此它會包含 Apache 正在查找的類型信息。

1.9 WSDL 是什么?

WSDL 是描述 Soap 消息和 Web 服務的標準的、結構化方法。Soap Toolkit 依賴于 WSDL 創(chuàng)建并解釋 Soap 消息,因此,對于任何 Soap Toolkit 2.0 客戶端或服務器,均要求 WSDL 文件。如果希望 Soap Toolkit 2.0 客戶端與不提供 WSDL 的 Soap 服務器通訊,必須創(chuàng)建一個 WSDL 文件,該文件描述 Soap 服務期望的消息。完成此任務最簡單的方法是:在 Microsoft Visual Basic 中創(chuàng)建一個與服務器所希望相匹配的虛擬接口,并使用 VB dll 上的 WSDLGen 創(chuàng)建 WSDL 文件。也可以手工創(chuàng)建 WSDL 文件。如果您希望支持非 WSDL 的 Soap 客戶端與 Soap Toolkit 2.0 服務對話,僅需要使用 WSDL 文件來描述 Soap 消息的外觀,并將此翻譯成客戶端用來創(chuàng)建 Soap 消息的任何機制。

1.10 WSDL 標準在哪里?

W3C 已經(jīng)確認了 WSDL 1.1 規(guī)范的提交?,F(xiàn)在,可以在 http://www./TR/wsdl 找到該規(guī)范。

1.11 在 ASP 中運行客戶端時,為什么不能讀取 WSDL 文件?

使用 MSXML 的 http 接口,將 WSDL 文件加載到 WSDL 讀取器中的 DOM。運行 ASP 頁中的 MSXML HTTP 堆棧要求使用 ServerHTTPRequest 選項。為此,請遵循如下操作:

  • 將 "ServerHTTPRequest" ClientProperty 設置為 true。示例:SoapClient.ClientProperty("ServerHTTPRequest") = True

  • 需要運行 proxycfg.exe (請參閱 知識庫文章 Q289481)。

另一個選擇是使用本地 filepath 來指定 WSDL: mssoapinit ("C:\wsldfiles\MyProject.wsdl")

另一個選擇是使用本地 filepath 來指定 WSDL: mssoapinit ("C:\wsldfiles\MyProject.wsdl")

1.11 WSML 是什么?

WSML 被確切地描述為 Soap Toolkit 配置文件。它包含將 WSDL 文件描述的 SOAP 消息映射到 COM 接口所要求的信息。這包含諸如 ProgID 和 DispID 這樣的標準 COM'ism。WSML 決不會是一個標準,因為它只對 Soap Toolkit 有意義。

1.12 為什么要使用 SMO,而不使用高級別接口?

雖然兩者之間存在一些重疊,但高級別接口在傳統(tǒng) RPC 類型應用程序中處于最佳狀態(tài)。同時,SMO 在執(zhí)行面向消息的應用程序時狀態(tài)較好。如果希望使用 Soap 來交換 XML 文檔,SMO 是最佳選擇。如果希望使用 Soap 執(zhí)行遠程主機上的操作,高級別接口可能是更好的選擇。SMO 提供了一個接口,創(chuàng)建復雜 XML 文檔時比高級別接口更易于使用。

1.13 何時使用 ISAPI 偵聽器而不使用 ASP?

我的回答是幾乎總要使用。ISAPI 使用起來比 ASP 頁更加快捷方便,因此,除非所需工作 ISAPI 無法完成或正在使用 SMO,否則我會推薦使用 ISAPI。

1.14 為什么 ISAPI 在虛擬根目錄上不運行?

安裝 ISAPI 時,它會自行注冊以處理 ".WSDL" 文件。Soap Toolkit 2.0 的安裝通過創(chuàng)建 “App Mapping” 將 ".WSDL" 擴展與機器(服務器)級別的 soapisap.dll 相關聯(lián)來完成此任務。安裝 SoapToolkit 2.0 之前,如果 “App Mapping” 在比機器級別低的節(jié)點發(fā)生變化(例如,在 “Web Site” 或 “Virtual Directory” 級),那么,新添加的 ".WSDL" 映射不會繼承機器級別設置。在這種情況下,可以用 IIS MMC Admin 工具在較低級別節(jié)點手工輸入 “App Mapping”。

例如,下面是使用 IIS MMC Admin 工具在 IIS 5.0 上手工添加 “Default Web Site” 的 “App Mapping” 的步驟(在進行這些步驟前要確保您有本地 admin 權限):

  • 在 “Default Web Site” 的屬性下選擇 Home Directory 選項卡。

  • Home Directory 選項卡上,單擊 Configuration 按鈕并選擇 App Mappings 選項卡。

  • 如果 .wsdl 擴展不存在,則單擊 Add 按鈕為 .wsdl 添加新的擴展項。

  • 輸入 soapisap.dll 的路徑。

由于 IIS Admin 工具的 UI 中的錯誤,不能添加帶有空格的路徑名。 要解決這個問題,輸入 soapisap.dll 的短文件路徑名(示例: ?C:\PROGRA~1\COMMON~1\MSSOAP\BINARIES\SOAPISAP.DLL}。 在 "Extension" 文本框中輸入 .wsdl。 如果您正在使用 Microsoft Windows 2000,為 "Verbs" 選擇 Limit to 并添加: GET、POST、HEAD。 如果您正在使用 Windows NT_ 4 ,保持 Exclude 文本框為空。 最后,應選中 “Script Engine”,且不應選中 "Check that files exist"。 現(xiàn)在,單擊 OK 以輸入新項。

注 雖然以上步驟會在 “Default Web Site” 級別添加 “App Mapping”,但在諸如 “Virtual Directory” 這樣的較低級別,可遵循同樣的步驟。

1.15 Soap Toolkit 中支持數(shù)組嗎?

Soap Toolkit 中支持簡單類型的一維數(shù)組、復雜類型的數(shù)組和多維數(shù)組。后面的服務軟件包包括對數(shù)組處理的幾項改進和修復。

1.19 Soap Toolkit fault Detail 元素包含什么?

細節(jié)部分是具有命名空間資格的,使用下列命名空間:

http://schemas.microsoft.com/soap-toolkit/faultdetail/error/ 

所有 Soap Toolkit 特定信息進入下列主干:

<soap:fault....> 
<detail> 
<mserror:errorInfo  
xmlns:mserror="http://schemas.microsoft.com/soap- 
         toolkit/faultdetail/error/"> 
     <mserror:returnCode></mserror:returnCode>  
    <mserror:serverErrorInfo> 
        <mserror:description></mserror:description>  
        <mserror:source></mserror:source>  
        <mserror:helpFile></mserror:helpFile>  
        <mserror:helpContext></mserror:helpContext>  
     </mserror:serverErrorInfo> 
   <mserror:callStack> 
      <mserror:callElement> 
         <mserror:component></mserror:component>  
           <mserror:description></mserror:description>  
           <mserror:returnCode></mserror:returnCode>  
        </mserror:callElement> 
     </mserror:callStack> 
  </mserror:errorInfo> 
  </detail> 

因此,假設已經(jīng)匯編了豐富的錯誤信息,我們就會以 mserror:errorInfo 元素開始創(chuàng)建擴展的 errorinfo 節(jié)。在第一個子級內(nèi),returnCode 進入客戶端 Error 對象的 HR。

如果提供服務器端 errorinfo 對象本身的內(nèi)容產(chǎn)生失?。ㄖT如 servercomponent 被調(diào)用),那么(并且只是那么,因此并不總是需要下面步驟),我們創(chuàng)建 mserror:serverErrorInfo 節(jié)。此節(jié)中的所有字段都是可選的—雖然,當 helpfile 持續(xù)時,您總是另外得到 helpContext—而且,只有當服務器在字段中有信息時,字段才持續(xù)。如果這些字段存在,就進入客戶端的 Error 對象。

1.20 為什么得到 “l(fā)ibrary not registerd” 錯誤?

在試圖執(zhí)行下列操作時,出現(xiàn) “l(fā)ibrary not registerd” 錯誤:Server.CreateObject("MSSOAP.SoapServer")。

產(chǎn)生這一錯誤的原因可以追溯到 typelib 注冊表項,它沒有給出 "Everyone" 分組讀訪問權限。這很可能是優(yōu)先安裝 Crystal Reports 8.0 的結果(請參閱 http://support.microsoft.com/support/kb/articles/Q266/6/21.ASP)。

2.1 如何處理 XSD 命名空間?

您可能會遇到 SOAP 應用程序中三個版本的 XSD 命名空間:1999、2000/10 和 2001。只要消息中的命名空間與 WSDL 文件中的命名空間相匹配,Soap Toolkit 2.0 就會接受具有任何一種版本命名空間的消息。WSDLGen 已經(jīng)修改,因此您能夠在三種命名空間中指定希望使用哪一種。如果不需要使用 1999 或 2000 版本與較低版本 Soap 實現(xiàn)兼容,建議使用默認的 2001 版本。注意,幾種數(shù)據(jù)類型名稱在 2001 版規(guī)范中已經(jīng)更改。詳細信息,請參閱文檔。

2.2 如何在客戶端安裝 Soap

這確實是 FAQ。正確的答案是使用 .MSM 文件,可以從下載 toolkit 的頁上下載該文件。如果您仔細將所有 DLL 置于正確的目錄并正確注冊,或許就能進行您自己的安裝;然而,將 .MSM 合并入您的安裝程序是實現(xiàn)這一目的最安全的方法,也是唯一受支持的方法。

2.3 為什么客戶端抱怨找不到服務器組件?

如果 SOAP 方法使用自定義類型匹配器,您可能需要使用客戶端的 WSML 文件。WSML 文件為 SoapClient 指定了自定義匹配器的 progid 以獲知它的位置。如果您的 WSML 文件指定了服務器組件的 progid(如同使用為服務器生成的 WSML 時一樣),您可能想刪除服務器組件信息,因此,SoapClient 不會試圖加載服務器組件。

2.4 Soap Toolkit 支持 COM EXE 作為服務器對象嗎?

雖然在一些實例中這可能有效,但這并不是一個經(jīng)過測試或受到支持的配置。建議編寫基于 DLL 的 .EXE 包裝來處理這種情況。

2.5 為什么不能從腳本調(diào)用 WSDLReader?

WSDLReader 不公開調(diào)度接口,因此它不能在腳本中使用。

2.6 為什么我的字符編碼在 NT4 上不運行?

Windows NT 4.0 不支持 CHS:gb2312 或 AR:iso8859-6 編碼。

2.7 如何使用低級別接口將 XML 寫入消息?

Serializer.writeXML 無需轉義即可寫出 XML。文檔提到它使用 CDATA 節(jié),但實際不是這樣。

2.8 為什么得到訪問被拒絕錯誤?

切記,Soap Toolkit 應用程序是 Web 應用程序。所有 Web 服務器都有許多保護措施確保用戶不能訪問不應訪問的內(nèi)容。這意味著訪問被拒絕經(jīng)常是服務器應用程序的默認狀態(tài)。請檢查以下幾項內(nèi)容:

  • 確保應用程序所運行的用戶(IWAM_... 或 IUSR_... 等等)具有對 WSDL 和 WSML 文件的讀訪問權限—檢查 ACL 文件及 IIS 配置。

  • 確保 Web 應用程序用戶擁有 dll 的讀和執(zhí)行權限,dll 實現(xiàn) Soap 服務。

  • 確保您的虛擬根目錄設置為允許 .wsdl 擴展的讀和執(zhí)行權限。

  • 在 VB 調(diào)試程序中運行服務器對象時,這種情況經(jīng)常發(fā)生。匿名用戶沒有激活 VB 調(diào)試程序中對象的足夠權限。

這不是一個詳盡的列表,但應該能夠為您提供一些初始的建議。

2.9 那些 SoapConnector HResult 的含義是什么?

錯誤

十進制

十六進制

AMBIGUOUS

5000

1388

BAD_REQUEST

5050

13BA

ACCESS_DENIED

5051

13BB

FORBIDDEN

5052

13BC

NOT_FOUND

5053

13BD

BAD_METHOD

5054

13BE

REQ_TIMEOUT

5055

13BF

CONFLICT

5056

13C0

GONE

5057

13C1

TOO_LARGE

5058

13C2

ADDRESS

5059

13C3

SERVER_ERROR

5100

13EC

SRV_NOT_SUPPORTED

5101

13ED

BAD_GATEWAY

5102

13EE

NOT_AVAILABLE

5103

13EF

SRV_TIMEOUT

5104

13F0

VER_NOT_SUPPORTED

5105

13F1

BAD_CONTENT

5200

1450

CONNECTION_ERROR

5300

1464

BAD_CERTIFICATE_NAME

5301

1465

HTTP_UNSPECIFIED

5400

1518

HTTP_SENDRECV

5401

1519

HTTP_BAD_REQUEST

5402

151A

HTTP_BAD_RESPONSE

5403

151B

HTTP_BAD_URL

5404

151C

HTTP_DNS_FAILURE

5405

151D

HTTP_CONNECT_FAILED

5406

151E

HTTP_SEND_FAILED

5407

151F

HTTP_RECV_FAILED

5408

1520

HTTP_HOST_NOT_FOUND

5409

1521

HTTP_OVERLOADED

5410

1522

HTTP_FORCED_ABORT

5411

1523

HTTP_NO_RESPONSE

5412

1524

HTTP_BAD_CHUNK

5413

1525

HTTP_PARSE_RESPONSE

5414

1526

HTTP_TIMEOUT

5415

1527

HTTP_CANNOT_USE_PROXY

5416

1528

HTTP_BAD_CERTIFICATE

5417

1529

HTTP_BAD_CERT_AUTHORITY

5418

152A

HTTP_SSL_ERROR

5419

152B

WSDL_MUSTUNDERSTAND

7100

1BBC

2.10 將 Soap Server 移到另一臺機器時,為什么客戶端不運行?

發(fā)生這個問題的一個常見原因就是可能需要更改兩個不同的 URL。SoapClient.mssoapinit 調(diào)用包含了 WSDL 文件(以及可選擇的 WSML 文件)的位置。如果移動服務時移動了這些文件,必須更改參數(shù)與之匹配。在 “l(fā)ocation” 屬性中的 WSDL 文件中,指定了 Soap 服務的實際 URL—這一點常常被遺忘。

2.11 所有客戶端均不安裝 Soap Toolkit 時,如何實現(xiàn) Soap Client?

有一個基于腳本的 Soap 實現(xiàn),不需要安裝 Soap Toolkit。

2.12 如何保護 Soap 應用程序?

Soap 本質(zhì)上是一個 Web 應用程序,因此,所有應用于 Web 應用程序的安全性基本原理也適用于 Soap。這篇 FAQ 已經(jīng)涵蓋了一些最常見的疑問,但安全性是一個非常廣泛的問題,這里不能完全涵蓋。下面是一篇由我們的測試負責人撰寫的有關 Soap 安全性的文章:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/Dnsoap/html/Soapsecurity.asp?frame=true.我所了解的用于設置 Web 安全性的最佳資源是 Michael Howard 的專著:Designing Secure Web-Based Application for Microsoft Windows 2000,Microsoft Press;ISBN:0735609950。

ASPToday 也有幾篇不錯的關于安全性的文章,其中有:Securing Windows 2000 IIS 5.0applications.

2.13 為什么客戶證書不運行?

關于客戶證書的一個常見問題是在一個證書中有多個名稱—友好名稱和主題名稱。主題名稱是在 Soap Client 中指定客戶證書時使用的名稱。要查找主題名稱,使用 IE 定位到 IE/Tools/Internet Options/Content,并單擊證書按鈕。要使用的名稱位于 "Issued To" 列。這個名稱常常是一個 X.500 名稱。如果這樣,CN 是所要求名稱的一部分。有關詳細信息,請參閱 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/Dnsoap/html/Soapsecurity.asp?frame=true 上的 Soap 安全性文章。

2.14 遇到 Soap Toolkit 2.0 問題時,如何獲得支持?

可從 http://support.microsoft.com/directory/overview.asp?sd=gn&fr=0 站點獲得 Microsoft 支持選項概覽。您可以從以下站點選擇電話支持或基于 Web 的支持:http://support.microsoft.com/directory/directory.asp?sd=gn。

2.15 Windows 95 支持 Soap Toolkit 嗎?

Windows 95 缺少一些 Soap Toolkit 代碼使用的系統(tǒng)調(diào)用,因此,目前不能支持。

2.16 為什么低級別 API 應用程序不運行?

低級別對象在處理邊界間(例如,中等或高等保護,COM+ server 應用程序和調(diào)試程序)使用時,關于它們的一些封送處理問題會產(chǎn)生其他問題。目前,只使用低級別組件 inproc。這個問題將在服務軟件包版本中解決。

2.17 我的 IIS 服務器返回一個 HTTP 狀態(tài)代碼。這是什么意思?

請查閱:http://msdn.microsoft.com/workshop/networking/wininet/reference/constants/statuscodes.asp。

2.18 如何得到 Web Service Behaviors 問題的解答?

從 soapsdk 新聞組不能得到滿意的解答??蓪栴}發(fā)送到:iewctrls@microsoft.com。

2.19 下一版本 Soap Toolkit 何時發(fā)布?

Soap Toolkit 3.0 應該在 2001 年秋末發(fā)布其第一個測試版。

2.20 為什么不能每秒從一個 Soap Client 進行五次以上的調(diào)用?

添加的注冊表設置使您能夠關閉 ISAPI 服務器中的 Nagling 延遲。從特殊連接上的 ISAPI 接收到每個緩沖區(qū)后,Nagling 通過添加延遲防止 TCP 發(fā)送小的數(shù)據(jù)包,以免另一個緩沖區(qū)很快就到達,因而兩個緩沖區(qū)能夠結合起來。這個延遲是 200 ms,因此,大多數(shù) Soap 操作都有額外的 200 ms 通過 Nagling 延遲添加到它們的執(zhí)行時間。這使得一些愚蠢的基準使調(diào)用服務器的單一客戶端在循環(huán)中報告比在關閉 Nagling 時更糟糕的結果。顯然,即使客戶端和服務器執(zhí)行時沒有花費時間,單一客戶端線程也不能每秒將五個以上的事務發(fā)送到服務器。在數(shù)以千計的客戶并行訪問服務器這種更現(xiàn)實的基準中,Nagling 常常通過減少發(fā)送的小數(shù)據(jù)包數(shù)量來提高性能。通常,如果基準給出的結果比預料的結果更糟糕,嘗試關閉 Nagling,看看是否有用。要關閉 Nagling 延遲,將 HKEY_LOCAL_MACHINE\Software\Microsoft\MSSOAP\SOAPISAP 中的 "NoNagling" DWORD 值更改為 1。

2.21 為什么 Soap Toolkit 不能從該站點讀取 WSDL?

看一下 WSDL 是否有導入語句。2.0 版的 toolkit 還不支持導入。唯一的途徑就是自己復制 WSDL 文件,并使用剪貼將導入信息拖入主文件。這應在 toolkit 3.0 版本中解決。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多