發佈 Web 服務的考量
本主題提供發佈 Web 服務之前應考量的資訊。
發佈結構描述和 include 項目
在某些情況下,包含 include 元素的架構無法發佈為 Web 服務。 因此當您完成 [BizTalk Web 服務發佈精靈] 時,將會發生錯誤。 這些限制包括下列各項:
迴圈包含 (包含的架構具有包含架構的 include 元素)
未解析 的 schemaLocation 屬性會導致錯誤
For more information about the limitation of include element, see "Include Element Binding Support" at https://go.microsoft.com/fwlink/?LinkId=62312.
發佈結構描述和 import 項目
[BizTalk Web 服務發佈精靈] 與 .NET Framework 中包含的 XSD.exe 擁有相同的限制。 如需詳細資訊,請參閱 中的 https://go.microsoft.com/fwlink/?LinkId=62311 。
發佈結構描述和 redefine 項目
[BizTalk Web 服務發佈精靈] 與 .NET Framework 中包含的 XSD.exe 擁有相同的限制。 如需詳細資訊,請參閱 中的 https://go.microsoft.com/fwlink/?LinkId=62313 。
發佈指定 minOccurs 或 maxOccurs 屬性值的結構描述
如果您發佈包含minOccurs 或 maxOccurs屬性且具有特定值的架構,這些值在已發佈的 Web 服務所公開的架構中可能會不同。 一般的基本原則是,所有 minOccurs 屬性都會轉換成 0 (minOccurs=0),而 maxOccurs 屬性會轉換成 1 或未繫結 (maxOccurs=1 或 maxOccurs=unbounded)。
發佈信封結構描述
如果您有將要發佈為 Web 服務的信封結構描述,則必須手動修改產生的 Web 專案。
若要針對信封結構描述修改所產生的 Web 專案
<
myWebService
> 開啟 .asmx.cs 檔案。編輯檔案並變更
bodyTypeAssemblyQualifiedName = <dll.name.version.>
為bodyTypeAssemblyQualifiedName = null
。
注意
如果先前的 .dll 檔案仍存在於 ASP.NET 背景工作處理序中,您可能需要重設 Internet Information Services (IIS)。
Web 服務和 Web 方法的屬性
[BizTalk Web 服務發佈精靈] 不允許您自訂 ASP.NET 中使用的 Web 服務或 Web 方法的屬性。 某些屬性會根據精靈提供的資訊自動設定。 精靈不會使用其他屬性。
修改現有的屬性或新增屬性至 [BizTalk Web 服務發佈精靈] 產生的 Web 服務,可能會造成 Web 服務運作不正常。
如需 Web 服務和 Web 方法屬性的詳細資訊,請參閱 .NET Framework SDK 檔中的WebServiceAttribute和WebMethodAttribute類別。
需要 Web 方法
Web 服務必須至少擁有一個 Web 方法。 如果沒有 Web 方法,連接埠類型將不會建立其作業。 XLANG/s 不支援未包含作業的連接埠類型。
DBCS 字元支援
Web 服務不支援中文/日文/韓文 (CJK) Unified Ideograph Extension A 等字元。
使用 BizTalk Web 服務發佈精靈重新發佈 Web 服務
您可以使用 [BizTalk Web 服務發佈精靈] 重新發佈已發佈的 Web 服務。 在 [Web服務專案] 頁面上,您可以選取 [覆寫Web服務 ] 選項。
精靈不會儲存之前使用的設定。 如果您在重新執行精靈時變更設定,任何使用 (呼叫) 已發佈服務的 Web 用戶端都可能會失敗。 您應該更新任何使用 (呼叫) 已發佈 Web 服務之用戶端的 Web 參考。
已發佈的 Web 服務用戶端可能無法接收伺服器指令碼逾時錯誤
在 BizTalk Server 中使用 Web 服務發佈精靈產生的 Web 服務預設會設定腳本逾時值為110秒。 這是 .NET Framework 的預設值。 HttpServerUtility.ScriptTimeout 屬性。 使用 .NET Framework 的 Web 用戶端預設會設定為要求逾時值為100秒。 這是 .NET Framework HttpWebRequest.Timeout屬性的預設值。
如果使用 .NET Framework 的 Web 用戶端呼叫使用 [BizTalk Server Web 服務發佈精靈] 產生的 Web 服務,則用戶端可能無法收到伺服器腳本逾時錯誤,因為用戶端要求預設會先發生逾時。 若要解決這個問題,您可以執行下列其中一項工作:
將用戶端要求逾時增加為大於伺服器腳本逾時的值,方法是增加用戶端上 HttpWebRequest.Timeout 屬性的值。
藉由減少伺服器上的 HttpServerUtility.ScriptTimeout 屬性的值,將伺服器腳本逾時減少為小於用戶端要求逾時的值。