2001 年 6 月 21 日發(fā)布的 SP2 2.0 版,可從http://msdn.microsoft.com/library/default.asp?url=/downloads/list/websrv.asp 站點(diǎn)獲得此版本。
使用 MSSOAPT 在服務(wù)器端跟蹤:
修改 WSDL 中 soap:address 元素的位置屬性,將客戶端定向到 8080 端口。例如,如果 WSDL 包含 <http://MyServer/VDir/Service.wsdl>,將其更改為 <http://MyServer:8080/VDir/Service.wsdl>。
在服務(wù)器端運(yùn)行 MSSOAPT。
選擇文件、新建、格式化跟蹤(如果不需要看到 HTTP 標(biāo)頭)或文件、新的未格式化跟蹤(如果希望看到諸如 ContentType 和 SoapAction 這樣的 HTTP 標(biāo)頭)。
單擊 Trace Setup 對(duì)話框上的 OK 以接受默認(rèn)值。
現(xiàn)在,向 WSDL 中指定地址提出的所有請(qǐng)求/指定地址返回的所有響應(yīng)都會(huì)在跟蹤中出現(xiàn)。
使用 MSSOAPT 在客戶端跟蹤:
生成服務(wù)的 WSDL 文檔的本地副本。
修改 WSDL 中 soap:address 元素的位置屬性,將客戶端定向到 localhost:8080,并對(duì)當(dāng)前主機(jī)和端口進(jìn)行說明。例如,如果 WSDL 含有 ,將其更改為 ,并對(duì) "MyServer" 進(jìn)行說明。
在客戶端運(yùn)行 MSSOAPT。
選擇文件、新建、格式化跟蹤(如果不需要看到 HTTP 標(biāo)頭)或文件、新的未格式化跟蹤(如果希望看到 HTTP 標(biāo)頭)。
在 Trace Setup 對(duì)話框,輸入步驟 2 中說明的主機(jī)和端口作為目標(biāo)主機(jī)和目標(biāo)端口值,然后單擊 OK。
現(xiàn)在,來往于客戶端的任何請(qǐng)求/響應(yīng)都會(huì)在跟蹤中出現(xiàn)。
假設(shè)服務(wù)器設(shè)置為需要 SSL,您只需將 WSDL 文件中的 URL 更改(或者,如果您正在使用低級(jí)別接口,更改 Soap Connector URL)為以 HTTPS 開頭,而不以 HTTP 開頭。不必在客戶端設(shè)置 UseSSL 屬性。如果這樣做不起作用,最常見的原因就是服務(wù)器證書已經(jīng)過期,或是服務(wù)器需要客戶證書。注意,我們經(jīng)常聽說“使用 HTTP URL 運(yùn)行成功,但使用 HTTPS URL 運(yùn)行失敗”。如果虛擬根目錄設(shè)置為要求 SSL,那么使用 HTTP 就不會(huì)運(yùn)行,因此,本語句意味著服務(wù)器沒有設(shè)置為要求 SSL。
其他一些常見問題:
請(qǐng)確保證書有效且有可信的根目錄—打開此證書(雙擊它)并檢查是否有警告。
請(qǐng)確保您的服務(wù)器正確配置了 ssl—服務(wù)器端證書是有效的,有可信的根目錄,而且它的根目錄安裝在 LOCAL_MACHINE 存儲(chǔ)區(qū)。
不能將 localhost 用作主機(jī)名—URL 中的主機(jī)名應(yīng)該與服務(wù)器端證書中的主機(jī)名相匹配。
如果您的機(jī)器上沒有 mmc 工具,要查看證書,可以使用 IE—步驟為 Tools/Options/Content/Certificates/。
如果將服務(wù)器 vdir 設(shè)置為需要客戶證書—可以通過 Microsoft Internet Explorer 訪問 vdir 來檢查可使用哪些客戶證書。IE 會(huì)顯示一個(gè)客戶證書列表,這些客戶證書具有服務(wù)器端信任的根目錄。如果您有 IE 5.5,在安全性設(shè)置中禁用 "Miscellaneous\Don't prompt for client certificates selection when no certificates or only one certificate exists" 標(biāo)志。
在 MSDN 文章中,可以找到對(duì)這些問題及其他問題的準(zhǔn)確解釋,用 Microsoft SOAP Toolkit 2.0 構(gòu)建安全的 Web 服務(wù)。
查找到 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual Basic\ProductDir" 注冊(cè)表項(xiàng)時(shí),安裝 SMO Generator 的選項(xiàng)應(yīng)該是可見的。請(qǐng)使用 regedit 查看 該項(xiàng)是否存在。
在 2.1 版之前,Apache 要求所有 Soap 參數(shù)的 xsi:type 屬性。而且,Soap Toolkit 通常不發(fā)送 Soap 消息中的 xsi:type。如果部署說明符中定義了類型,Apache 2.1 版就不再需要 xsi.type 屬性。但是,Apache 服務(wù)還不使用 WSDL,因此,必須為 Soap Toolkit 客戶端創(chuàng)建一個(gè) WSDL 文件與 Apache 服務(wù)器進(jìn)行對(duì)話。已經(jīng)使用 Apache 2.2 成功測(cè)試了 RTM Soap Toolkit。
另一個(gè)有時(shí)起作用的竅門是在生成 WSDL 文件后對(duì)其進(jìn)行編輯,將 Apache 出現(xiàn)問題的類型更改為 "xsd:anyType"。這會(huì)使該工具包將參數(shù)作為變量,因此它會(huì)包含 Apache 正在查找的類型信息。
WSDL 是描述 Soap 消息和 Web 服務(wù)的標(biāo)準(zhǔn)的、結(jié)構(gòu)化方法。Soap Toolkit 依賴于 WSDL 創(chuàng)建并解釋 Soap 消息,因此,對(duì)于任何 Soap Toolkit 2.0 客戶端或服務(wù)器,均要求 WSDL 文件。如果希望 Soap Toolkit 2.0 客戶端與不提供 WSDL 的 Soap 服務(wù)器通訊,必須創(chuàng)建一個(gè) WSDL 文件,該文件描述 Soap 服務(wù)期望的消息。完成此任務(wù)最簡單的方法是:在 Microsoft Visual Basic 中創(chuàng)建一個(gè)與服務(wù)器所希望相匹配的虛擬接口,并使用 VB dll 上的 WSDLGen 創(chuàng)建 WSDL 文件。也可以手工創(chuàng)建 WSDL 文件。如果您希望支持非 WSDL 的 Soap 客戶端與 Soap Toolkit 2.0 服務(wù)對(duì)話,僅需要使用 WSDL 文件來描述 Soap 消息的外觀,并將此翻譯成客戶端用來創(chuàng)建 Soap 消息的任何機(jī)制。
W3C 已經(jīng)確認(rèn)了 WSDL 1.1 規(guī)范的提交?,F(xiàn)在,可以在 http://www.w3.org/TR/wsdl 找到該規(guī)范。
使用 MSXML 的 http 接口,將 WSDL 文件加載到 WSDL 讀取器中的 DOM。運(yùn)行 ASP 頁中的 MSXML HTTP 堆棧要求使用 ServerHTTPRequest 選項(xiàng)。為此,請(qǐng)遵循如下操作:
將 "ServerHTTPRequest" ClientProperty 設(shè)置為 true。示例:SoapClient.ClientProperty("ServerHTTPRequest") = True
需要運(yùn)行 proxycfg.exe (請(qǐng)參閱 知識(shí)庫文章 Q289481)。
另一個(gè)選擇是使用本地 filepath 來指定 WSDL: mssoapinit ("C:\wsldfiles\MyProject.wsdl")
另一個(gè)選擇是使用本地 filepath 來指定 WSDL: mssoapinit ("C:\wsldfiles\MyProject.wsdl")
WSML 被確切地描述為 Soap Toolkit 配置文件。它包含將 WSDL 文件描述的 SOAP 消息映射到 COM 接口所要求的信息。這包含諸如 ProgID 和 DispID 這樣的標(biāo)準(zhǔn) COM'ism。WSML 決不會(huì)是一個(gè)標(biāo)準(zhǔn),因?yàn)樗粚?duì) Soap Toolkit 有意義。
雖然兩者之間存在一些重疊,但高級(jí)別接口在傳統(tǒng) RPC 類型應(yīng)用程序中處于最佳狀態(tài)。同時(shí),SMO 在執(zhí)行面向消息的應(yīng)用程序時(shí)狀態(tài)較好。如果希望使用 Soap 來交換 XML 文檔,SMO 是最佳選擇。如果希望使用 Soap 執(zhí)行遠(yuǎn)程主機(jī)上的操作,高級(jí)別接口可能是更好的選擇。SMO 提供了一個(gè)接口,創(chuàng)建復(fù)雜 XML 文檔時(shí)比高級(jí)別接口更易于使用。
我的回答是幾乎總要使用。ISAPI 使用起來比 ASP 頁更加快捷方便,因此,除非所需工作 ISAPI 無法完成或正在使用 SMO,否則我會(huì)推薦使用 ISAPI。
安裝 ISAPI 時(shí),它會(huì)自行注冊(cè)以處理 ".WSDL" 文件。Soap Toolkit 2.0 的安裝通過創(chuàng)建 “App Mapping” 將 ".WSDL" 擴(kuò)展與機(jī)器(服務(wù)器)級(jí)別的 soapisap.dll 相關(guān)聯(lián)來完成此任務(wù)。安裝 SoapToolkit 2.0 之前,如果 “App Mapping” 在比機(jī)器級(jí)別低的節(jié)點(diǎn)發(fā)生變化(例如,在 “Web Site” 或 “Virtual Directory” 級(jí)),那么,新添加的 ".WSDL" 映射不會(huì)繼承機(jī)器級(jí)別設(shè)置。在這種情況下,可以用 IIS MMC Admin 工具在較低級(jí)別節(jié)點(diǎn)手工輸入 “App Mapping”。
例如,下面是使用 IIS MMC Admin 工具在 IIS 5.0 上手工添加 “Default Web Site” 的 “App Mapping” 的步驟(在進(jìn)行這些步驟前要確保您有本地 admin 權(quán)限):
在 “Default Web Site” 的屬性下選擇 Home Directory 選項(xiàng)卡。
在 Home Directory 選項(xiàng)卡上,單擊 Configuration 按鈕并選擇 App Mappings 選項(xiàng)卡。
如果 .wsdl 擴(kuò)展不存在,則單擊 Add 按鈕為 .wsdl 添加新的擴(kuò)展項(xiàng)。
輸入 soapisap.dll 的路徑。
注 由于 IIS Admin 工具的 UI 中的錯(cuò)誤,不能添加帶有空格的路徑名。 要解決這個(gè)問題,輸入 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 文本框?yàn)榭?/b>。 最后,應(yīng)選中 “Script Engine”,且不應(yīng)選中 "Check that files exist"。 現(xiàn)在,單擊 OK 以輸入新項(xiàng)。
注 雖然以上步驟會(huì)在 “Default Web Site” 級(jí)別添加 “App Mapping”,但在諸如 “Virtual Directory” 這樣的較低級(jí)別,可遵循同樣的步驟。
Soap Toolkit 中支持簡單類型的一維數(shù)組、復(fù)雜類型的數(shù)組和多維數(shù)組。后面的服務(wù)軟件包包括對(duì)數(shù)組處理的幾項(xiàng)改進(jìn)和修復(fù)。
細(xì)節(jié)部分是具有命名空間資格的,使用下列命名空間:
http://schemas.microsoft.com/soap-toolkit/faultdetail/error/
所有 Soap Toolkit 特定信息進(jìn)入下列主干:
<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>
因此,假設(shè)已經(jīng)匯編了豐富的錯(cuò)誤信息,我們就會(huì)以 mserror:errorInfo 元素開始創(chuàng)建擴(kuò)展的 errorinfo 節(jié)。在第一個(gè)子級(jí)內(nèi),returnCode 進(jìn)入客戶端 Error 對(duì)象的 HR。
如果提供服務(wù)器端 errorinfo 對(duì)象本身的內(nèi)容產(chǎn)生失敗(諸如 servercomponent 被調(diào)用),那么(并且只是那么,因此并不總是需要下面步驟),我們創(chuàng)建 mserror:serverErrorInfo 節(jié)。此節(jié)中的所有字段都是可選的—雖然,當(dāng) helpfile 持續(xù)時(shí),您總是另外得到 helpContext—而且,只有當(dāng)服務(wù)器在字段中有信息時(shí),字段才持續(xù)。如果這些字段存在,就進(jìn)入客戶端的 Error 對(duì)象。
在試圖執(zhí)行下列操作時(shí),出現(xiàn) “l(fā)ibrary not registerd” 錯(cuò)誤:Server.CreateObject("MSSOAP.SoapServer")。
產(chǎn)生這一錯(cuò)誤的原因可以追溯到 typelib 注冊(cè)表項(xiàng),它沒有給出 "Everyone" 分組讀訪問權(quán)限。這很可能是優(yōu)先安裝 Crystal Reports 8.0 的結(jié)果(請(qǐng)參閱 http://support.microsoft.com/support/kb/articles/Q266/6/21.ASP)。
您可能會(huì)遇到 SOAP 應(yīng)用程序中三個(gè)版本的 XSD 命名空間:1999、2000/10 和 2001。只要消息中的命名空間與 WSDL 文件中的命名空間相匹配,Soap Toolkit 2.0 就會(huì)接受具有任何一種版本命名空間的消息。WSDLGen 已經(jīng)修改,因此您能夠在三種命名空間中指定希望使用哪一種。如果不需要使用 1999 或 2000 版本與較低版本 Soap 實(shí)現(xiàn)兼容,建議使用默認(rèn)的 2001 版本。注意,幾種數(shù)據(jù)類型名稱在 2001 版規(guī)范中已經(jīng)更改。詳細(xì)信息,請(qǐng)參閱文檔。
這確實(shí)是 FAQ。正確的答案是使用 .MSM 文件,可以從下載 toolkit 的頁上下載該文件。如果您仔細(xì)將所有 DLL 置于正確的目錄并正確注冊(cè),或許就能進(jìn)行您自己的安裝;然而,將 .MSM 合并入您的安裝程序是實(shí)現(xiàn)這一目的最安全的方法,也是唯一受支持的方法。
如果 SOAP 方法使用自定義類型匹配器,您可能需要使用客戶端的 WSML 文件。WSML 文件為 SoapClient 指定了自定義匹配器的 progid 以獲知它的位置。如果您的 WSML 文件指定了服務(wù)器組件的 progid(如同使用為服務(wù)器生成的 WSML 時(shí)一樣),您可能想刪除服務(wù)器組件信息,因此,SoapClient 不會(huì)試圖加載服務(wù)器組件。
雖然在一些實(shí)例中這可能有效,但這并不是一個(gè)經(jīng)過測(cè)試或受到支持的配置。建議編寫基于 DLL 的 .EXE 包裝來處理這種情況。
WSDLReader 不公開調(diào)度接口,因此它不能在腳本中使用。
Windows NT 4.0 不支持 CHS:gb2312 或 AR:iso8859-6 編碼。
Serializer.writeXML 無需轉(zhuǎn)義即可寫出 XML。文檔提到它使用 CDATA 節(jié),但實(shí)際不是這樣。
切記,Soap Toolkit 應(yīng)用程序是 Web 應(yīng)用程序。所有 Web 服務(wù)器都有許多保護(hù)措施確保用戶不能訪問不應(yīng)訪問的內(nèi)容。這意味著訪問被拒絕經(jīng)常是服務(wù)器應(yīng)用程序的默認(rèn)狀態(tài)。請(qǐng)檢查以下幾項(xiàng)內(nèi)容:
確保應(yīng)用程序所運(yùn)行的用戶(IWAM_... 或 IUSR_... 等等)具有對(duì) WSDL 和 WSML 文件的讀訪問權(quán)限—檢查 ACL 文件及 IIS 配置。
確保 Web 應(yīng)用程序用戶擁有 dll 的讀和執(zhí)行權(quán)限,dll 實(shí)現(xiàn) Soap 服務(wù)。
確保您的虛擬根目錄設(shè)置為允許 .wsdl 擴(kuò)展的讀和執(zhí)行權(quán)限。
在 VB 調(diào)試程序中運(yùn)行服務(wù)器對(duì)象時(shí),這種情況經(jīng)常發(fā)生。匿名用戶沒有激活 VB 調(diào)試程序中對(duì)象的足夠權(quán)限。
這不是一個(gè)詳盡的列表,但應(yīng)該能夠?yàn)槟峁┮恍┏跏嫉慕ㄗh。
錯(cuò)誤 | 十進(jìn)制 | 十六進(jìn)制 |
---|---|---|
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 |
發(fā)生這個(gè)問題的一個(gè)常見原因就是可能需要更改兩個(gè)不同的 URL。SoapClient.mssoapinit 調(diào)用包含了 WSDL 文件(以及可選擇的 WSML 文件)的位置。如果移動(dòng)服務(wù)時(shí)移動(dòng)了這些文件,必須更改參數(shù)與之匹配。在 “l(fā)ocation” 屬性中的 WSDL 文件中,指定了 Soap 服務(wù)的實(shí)際 URL—這一點(diǎn)常常被遺忘。
有一個(gè)基于腳本的 Soap 實(shí)現(xiàn),不需要安裝 Soap Toolkit。
Soap 本質(zhì)上是一個(gè) Web 應(yīng)用程序,因此,所有應(yīng)用于 Web 應(yīng)用程序的安全性基本原理也適用于 Soap。這篇 FAQ 已經(jīng)涵蓋了一些最常見的疑問,但安全性是一個(gè)非常廣泛的問題,這里不能完全涵蓋。下面是一篇由我們的測(cè)試負(fù)責(zé)人撰寫的有關(guān) Soap 安全性的文章:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/Dnsoap/html/Soapsecurity.asp?frame=true.我所了解的用于設(shè)置 Web 安全性的最佳資源是 Michael Howard 的專著:Designing Secure Web-Based Application for Microsoft Windows 2000,Microsoft Press;ISBN:0735609950。
ASPToday 也有幾篇不錯(cuò)的關(guān)于安全性的文章,其中有:Securing Windows 2000 IIS 5.0applications.
關(guān)于客戶證書的一個(gè)常見問題是在一個(gè)證書中有多個(gè)名稱—友好名稱和主題名稱。主題名稱是在 Soap Client 中指定客戶證書時(shí)使用的名稱。要查找主題名稱,使用 IE 定位到 IE/Tools/Internet Options/Content,并單擊證書按鈕。要使用的名稱位于 "Issued To" 列。這個(gè)名稱常常是一個(gè) X.500 名稱。如果這樣,CN 是所要求名稱的一部分。有關(guān)詳細(xì)信息,請(qǐng)參閱 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/Dnsoap/html/Soapsecurity.asp?frame=true 上的 Soap 安全性文章。
可從 http://support.microsoft.com/directory/overview.asp?sd=gn&fr=0 站點(diǎn)獲得 Microsoft 支持選項(xiàng)概覽。您可以從以下站點(diǎn)選擇電話支持或基于 Web 的支持:http://support.microsoft.com/directory/directory.asp?sd=gn。
Windows 95 缺少一些 Soap Toolkit 代碼使用的系統(tǒng)調(diào)用,因此,目前不能支持。
低級(jí)別對(duì)象在處理邊界間(例如,中等或高等保護(hù),COM+ server 應(yīng)用程序和調(diào)試程序)使用時(shí),關(guān)于它們的一些封送處理問題會(huì)產(chǎn)生其他問題。目前,只使用低級(jí)別組件 inproc。這個(gè)問題將在服務(wù)軟件包版本中解決。
請(qǐng)查閱:http://msdn.microsoft.com/workshop/networking/wininet/reference/constants/statuscodes.asp。
從 soapsdk 新聞組不能得到滿意的解答??蓪栴}發(fā)送到:iewctrls@microsoft.com。
Soap Toolkit 3.0 應(yīng)該在 2001 年秋末發(fā)布其第一個(gè)測(cè)試版。
添加的注冊(cè)表設(shè)置使您能夠關(guān)閉 ISAPI 服務(wù)器中的 Nagling 延遲。從特殊連接上的 ISAPI 接收到每個(gè)緩沖區(qū)后,Nagling 通過添加延遲防止 TCP 發(fā)送小的數(shù)據(jù)包,以免另一個(gè)緩沖區(qū)很快就到達(dá),因而兩個(gè)緩沖區(qū)能夠結(jié)合起來。這個(gè)延遲是 200 ms,因此,大多數(shù) Soap 操作都有額外的 200 ms 通過 Nagling 延遲添加到它們的執(zhí)行時(shí)間。這使得一些愚蠢的基準(zhǔn)使調(diào)用服務(wù)器的單一客戶端在循環(huán)中報(bào)告比在關(guān)閉 Nagling 時(shí)更糟糕的結(jié)果。顯然,即使客戶端和服務(wù)器執(zhí)行時(shí)沒有花費(fèi)時(shí)間,單一客戶端線程也不能每秒將五個(gè)以上的事務(wù)發(fā)送到服務(wù)器。在數(shù)以千計(jì)的客戶并行訪問服務(wù)器這種更現(xiàn)實(shí)的基準(zhǔn)中,Nagling 常常通過減少發(fā)送的小數(shù)據(jù)包數(shù)量來提高性能。通常,如果基準(zhǔn)給出的結(jié)果比預(yù)料的結(jié)果更糟糕,嘗試關(guān)閉 Nagling,看看是否有用。要關(guān)閉 Nagling 延遲,將 HKEY_LOCAL_MACHINE\Software\Microsoft\MSSOAP\SOAPISAP 中的 "NoNagling" DWORD 值更改為 1。
看一下 WSDL 是否有導(dǎo)入語句。2.0 版的 toolkit 還不支持導(dǎo)入。唯一的途徑就是自己復(fù)制 WSDL 文件,并使用剪貼將導(dǎo)入信息拖入主文件。這應(yīng)在 toolkit 3.0 版本中解決。
聯(lián)系客服