*************************************************************** Microsoft(R) SQL Server(TM) Notification Services 2.0 SP1 讀我檔案 2003年 5 月 8 日 *************************************************************** (C) Copyright Microsoft Corporation, 2002-2003. 著作權所有,並保留一切權利。 此檔案包含補充 Microsoft SQL Server Notification Services 文件 的資訊。 *************************************************************** 內容 *************************************************************** 1.0 簡介 1.1 Notification Services 2.0 SP1 的增強功能 1.2 網路上的讀我檔案增補合約 1.3 存取 Notification Services 文件 2.0 安裝 SQL Server 2000 2.1 硬體與軟體需求 2.2 安裝 Notification Services 2.3 執行 Notification Services 範例 2.4 解除安裝 Notification Services 3.0 將應用程式升級到 Notification Services 2.0 SP1 4.0 產品及文件注意事項 4.1 疑難排解:SSL 安全性錯誤 4.2 執行 NSControl 升級程式之前,先停用執行個體 4.3 EventCollector.Write 方法並未傳回數值 4.4 請勿使用大量通知批次大小的摘要傳送 4.5 文件中不正確的事件來源名稱 4.6 疑難排解:安裝程式已完成,但未安裝 Notification Services 4.7 事件訊息指出找不到事件訊息 DLL 4.8 加密引數機碼值為字元字串 4.9 停用訂閱者將停用執行個體 4.10 未記錄內容格式化錯誤所造成的傳送失敗 4.11 Notification Services 無法在叢集上執行, 值必須是叢集名稱 4.12 SP1:NSControl Create 啟用跨資料庫擁有權鏈結:需要系統 管理員 (Sysadmin) 權限 4.13 SP1:以 XSLT 內容格式器寫入純文字 4.14 SP1:NSDiagnosticFailedNotifications 預存程序的變更 4.15 使用以 .NET Framework 版本 1.1.4322 建置的自訂元件 * 以「SP1:」開始的項目,適用於 Notification Services 2.0 SP1, 而不是先前的版本。 *************************************************************** 1.0 簡介 *************************************************************** Notification Services 2.0 SP1 是 Notification Services 的完整版 本。 如果您已經是 Notification Service 2.0 的使用者,您可以「同時」 安裝 Notification Service 2.0 SP1,然後再升級您的應用程式。若需 升級應用程式的相關資訊,請參閱 3.0 節。 如果您尚未安裝過 Notification Services 2.0,則可以先安裝 Notification Services 2.0 SP1,再用它來建置及執行您的通知應用程 式。 ------------------------------------------------- 1.1 Notification Services 2.0 SP1 的增強功能 ------------------------------------------------- * 安裝程式支援 .NET Framework 1.0 及 1.1 版本。 * NSControl Create 新增了更多的索引,其中包括可提高淨空效能的事 件表格索引,以及可改善訂閱處理效能的通知表格。 * NSDiagnosticFailedNotifications 在每次通知傳送失敗時,都會傳 回一筆記錄 (內容格式化錯誤除外,如項目 4.10 所述)。 * 您可以將標準 XSLT 內容格式器設定為寫入純文字。請參閱 4.11 節 以取得相關資訊。 * NSControl Create 會啟動執行個體及應用程式的跨資料庫擁有權鏈 結。請參閱 4.12 節以取得相關資訊。 * 如果您在 ADF 中變更 ,再使用 NSControl Update 來更新應用程式,則 會重新編譯 Notify 功能以包含這些變更。 * 當您在通知類別中的 節點新增、變更、或刪除項目, 再升級應用程式,NSControl 會更新通訊協定,而不會重新建立整個 通知類別。 * Realtor 範例應用程式現在執行的是區分大小寫的定序。 * 已更新 NSEventFlushBatch 預存程序以避免在多執行 緒處理事件提交時可能發生的鎖死情況。 * 資料庫連線字串的修改是為了解決具有「土耳其文」地區設定的作業 系統上所發生的連線問題。 * 在 Windows Server 2003 上,用於管理範例應用程式訂閱作業的 ASP.NET 應用程式是在 NT AUTHORITY\NETWORK SERVICE 帳戶下執 行。(在其他作業系統,則依然在 ASPNET 帳戶下執行。) ------------------------------ 1.2 網路上的讀我檔案增補合約 ------------------------------ 您可以在「Microsoft 產品支援服務」網站 http://support.microsoft.com?kbid=818351 取得關於 Notification Services 2.0 SP1 的最新文件。 ------------------------------------------------- 1.3 存取 Notification Services 文件 ------------------------------------------------- Notification Services 文件是由「安裝程式」所安裝。您可以只安裝 文件,而不安裝 Notification Services,這可讓您在安裝 Notification Services 之前,閱讀安裝指示並了解「安裝程式」選項。 線上文件及文件下載的連結,包括有「多國文件套件」,網址為:http://go.microsoft.com/fwlink/?LinkId=16139。 *************************************************************** 2.0 安裝 *************************************************************** 「Notification Services 安裝程式」能安裝五組元件及一個子元件: * 引擎元件,可執行 Notification Services 事件集合、產生、格式化 及傳送等功能。 當您部署一個橫向擴充的應用程式時,必須將這些元件安裝在每台執行 裝載的事件提供者、產生器或散發者的伺服器上。 * 用戶端元件,必須安裝在裝載獨立事件提供者及訂閱管理應用程式的 伺服器上。這些元件包含了獨立事件提供者所採用的介面,以及用來 與 Notification Services 進行通訊的應用程式。 用來管理 Nofitification Services 執行個體的 NSControl 公用程式也是用 戶端元件安裝的一部份。 如果您要提交 XML 資料,就必須一同安裝大量事件提交子元件與用戶 端元件。 * 資料庫元件必須安裝在每台裝載執行個體和應用程式的資料庫伺服器 上。資料庫元件包括用來產生通知的延伸預存程序。 * 文件,可安裝在您希望存取 Notification Services 文件的任何地 方。 * 一組您可以用來熟悉 Notification Services 的範例應用程式。您可 在 Microsoft Visual Studio(R) .NET 中執行這些範例。 您可以將所有元件安裝在同一部伺服器上,或是視需要將元件安裝在不 同的伺服器上。 -------------------------------------- 2.1 硬體與軟體需求 -------------------------------------- 在安裝 Notification Services 之前,請確定您的電腦符合下列需求: 重要事項:在安裝 Notification Services 的引擎及用戶端元件前,必 須先安裝 .NET Framework 1.0 或 1.1 版本。如果您安裝的是 .NET Framework 以上版本,請與 1.0 或 1.1 同時安裝。 重要事項:在安裝 Notification Services 的引擎及大量事件提交元件 前,必須先安裝 SQLXML 3.0。如果您安裝的是 SQLXML 以上版本,請勿 移除 SQLXML 3.0:將之與 SQLXML 3.0 同時安裝。 核心元件所需的硬體 =============================================================== * 電腦 至少需為 Pentium 450 MHz, 建議配置 Pentium 733 MHz 或更快的處理器。 * 記憶體 (RAM) 至少需為 128MB, 建議配置 256 MB 或以上的空間。 * 硬體空間 Notification Services 元件:10 MB。 如果資料庫與 Notification Services 在同 一伺服器上,則將視資料庫表格、記錄檔及 暫存資料庫表格的不同而需要額外的硬碟空間。 引擎元件所需的軟體 =============================================================== * 作業系統 Microsoft Windows(R) 2000 SP2 (或以上版本),Windows XP Professional 或 Windows Server 2003。 * Microsoft Data MDAC 版本 2.6 或以上版本,為安裝 Access Components Microsoft .NET Framework 及 (MDAC) Microsoft SQLXML 的必要項目。 * SQL Server 2000 SQL Server 2000 用戶端工具,為 用戶端工具 SQLXML 的必要項目。 * Microsoft SQLXML SQLXML 版本 3.0 (及其 Service Pack)。 * .NET Framework .NET Framework 版本 1.0 or 1.1 (及其 Service Pack)。 若要取得 .NET Framework、MDAC 及 SQLXML,請造訪 http://go.microsoft.com/fwlink/?linkid=7733。 用戶端元件所需的軟體 =============================================================== * 作業系統 Microsoft Windows(R) 2000 SP2 (或以上版本),Windows XP Professional 或 Windows Server 2003。 * Microsoft Data MDAC 版本 2.6 或以上版本,為安裝 Access Components .NET Framework 及 SQLXML 的必要項目。 (MDAC) * .NET Framework .NET Framework 版本 1.0 或 1.1 (及其 Service Pack)。 大量事件提交子元件所需的軟體 =============================================================== * SQL Server Tools SQL Server 2000 用戶端工具,為 SQLXML 的 必要項目。 * Microsoft SQLXML SQLXML 版本 3.0 (及其 Service Pack)。 資料庫元件所需的軟體 =============================================================== * SQL Server SQL Server 2000 Standard Edition、 SQL Server 2000 Enterprise Edition、 SQL Server 2000 Developer Edition、 或 SQL Server 2000 Evaluation Edition Notification Services 不支援 SQL Server Desktop Engine (MSDE 2000)、SQL Server 2000 Personal Edition,以及 SQL Server 2000 CE Edition。 Microsoft 建議您安裝 SQL Server 2000 最新的 Service Pack。 文件所需的軟體 =============================================================== * 網際網路軟體 Microsoft Internet Explorer 5.01 或以上 版本。 範例所需的軟體 =============================================================== * 開發工具 所有範例都以 Visual Studio .NET 解決方案 的方案 (.sin) 檔案呈現。 您不需要 Visual Studio.NET 也可以使用範 例:然而您必須使用文字編輯器或其他 XML 編 輯器來編輯檔案。 * 網際網路 執行範例的系統必須安裝並執行網際網路資訊服 資訊服務 務 (IIS) 5.0 或以上版本。這包括「簡易郵件傳 (IIS) 送通訊協定 (SMTP)」服務、 World Wide Web Publishing 服務及 IIS Admin 服務。 -------------------------------------------- 2.2 安裝 Notification Services 2.0 SP1 -------------------------------------------- 安裝注意事項: * 若要執行「Notification Services 安裝程式」,您所使用的帳戶必 須是本機 Administrators 群組的成員。若要安裝資料庫元件,則您 使用的帳戶或在安裝過程中指定的帳戶,必須是 SQL Server 系統管 理員 (sysadmin) 固定伺服器角色的成員。 * 您必須在本機執行安裝。無法使用遠端安裝。 * 當您安裝資料庫元件時,請確定 SQL Server 2000 資料庫引擎正在 執行。「安裝程式」不會嘗試啟動 SQL Server。 安裝指示: 1. 如果您之前已安裝 Notification Services 2.0 範例,請先用 RemoveSamplesDB.cmd 指令碼將之移除,該指令碼位於 2.0.2114.0\Samples 資料夾中。(請參閱 2.3 節以取得相關資訊。) 2. 執行「Notification Services 安裝程式」。如果您已下載安裝檔 案,該檔案名稱會是 MSSQLNS20SP1...exe。 3. 在「自訂安裝」畫面,選取您要安裝的元件。請確定系統符合上列 的軟體需求。如果系統未達到安裝元件的需求,則您將無法安裝該 元件。 除非您想要安裝的元件無法使用,否則不需要採取任何修正措施。 4. 如果安裝的是資料庫元件,請在 [資料庫元件安裝程式] 和 [SQL Server 登入資訊] 畫面輸入其他資訊: * 如果您已安裝多個 SQL Server 資料庫引擎的執行個體,請在 [資料庫元件安裝程式] 畫面選擇其中一個執行個體。您可以 使用 InstallXPs 公用程式,在其他執行個體上安裝元件。 * 在「SQL Server 登入資訊」畫面上,選取用來登入 SQL Server 驗證型別。若是使用「SQL Server 的帳戶驗證」,則請輸入您 的使用者名稱及密碼。 5. 在 [已完成安裝程式的準備工作] 畫面上,按一下 [安裝]。 您可以在《Notification Services 線上叢書》中取得更多關於安裝 的指示。 ------------------------------------------------- 2.3 執行 Notification Services 2.0 SP1 範例 ------------------------------------------------- 當您安裝範例應用程式時,安裝程式會加入一個包含範例檔案的 Vn.n.n.n\Sampl 資料夾。請使用 SetupSamples.cmd 命令列指令碼來 設定範例。之後,您可以使用 RunSamples.cmd 命令列指令碼或 Visual Studio .NET 來執行範例。若需範例應用程式的相關資訊,請 參閱《Notification Services 線上叢書》中的 〈Notification Services 程式設計範例〉。 注意:Notification Services 2.0 及 Notification Services 2.0 SP1 提供相同的範例應用程式。因為兩 個應用程式使用相同的檔名,您將無法同時在 2.0 及 2.1 執行範例。 在執行 SP1 的範例前,請先使用位於 v2.0.2114.0\Samples 資料夾 內的 RemoveSamplesDB.cmd 指令碼來移除 2.0 範例應用程式的執行 個體。刪除範例應用程式的執行個體,可以避免您在解除安裝 Notification Services 2.0 時產生不完整的範例應用程式。 -------------------------------------- 2.4 解除安裝 Notification Services -------------------------------------- 解除安裝 Notification Services: 1. 從 vn.n.n.n\Samples 資料夾中,執行 RemoveSamplesDB.cmd 以 刪除任何使用您正在移除之 Notification Services 版本的執行 個體。 2. 停止所有使用您將要移除之版本的 Notification Services 執行 個體。若要停止執行個體,請執行下列命令: net stop NS$ 3. 若是使用「SQL 驗證」,請執行 UninstallXPs.cmd 來移除資料庫 元件。解除安裝並不會提示您輸入 SQL Server 使用者名稱和密碼。 UninstallXPs 指令碼可讓您提供此項資訊。 4. 按一下 [控制台] 中的 [新增/移除程式]。 5. 選取 [Microsoft SQL Server Notification Services 2.0 SP1], 再按一下 [移除]。 6. 遵循畫面上的指示。 *************************************************************** 3.0 將應用程式升級到 Notification Services 2.0 SP1 *************************************************************** 若要將 Notification Services 應用程式升級到 Notification Services 2.0 SP1,您必須先升級執行這些應用程式的執 行個體。 注意:以下範例將會示範如何使用「Windows 的帳戶驗證」連線到 SQL Server 以進行升級。如果您使用「SQL Server 的帳戶驗證」連線 到 SQL Server,則必須使用 -sqlusername 與 -sqlpassword 參數及 NSControl Disable、NSControl Enable、NSControl Upgrade 及 NSControl Register 命令。 若要將在單一伺服器上執行的執行個體與位於同一伺服器或遠端伺服器 的資料庫進行升級: 1. 安裝 Notification Services 2.0 SP1。如果執行個體 與資料庫位在不同的伺服器上,則您必須將引擎元件安裝在執行個 體執行的位置,並將資料庫元件安裝在資料庫執行的位置。 如果您使用多個資料庫伺服器,請確定您使用 InstallXPs 命令在 每台伺服器上安裝資料庫元件,細節記錄於 《Notification Services 線上叢書》中的〈在 SQL Server 其他的 執行個體上安裝資料庫元件〉主題。 2. 備份應用程式及執行個體資料庫 若需備份資料庫的相關資訊,請參閱《SQL Server 線上叢書》。 3. 在執行個體執行的伺服器上,您必須先使用 NsControl 2.0.2114.0 版本取消註冊該執行個體: a. 在 [開始] 功能表上,指向 [程式集\Microsoft SQL Server Notification Services (2.0.2114.0)],再按一下 [Notification Services 命令提示字 元] 以開啟命令提示視窗。 b. 停用執行個體。 例如:nscontrol disable -name StockInstance c. 停止 NS$ 服務。 例如:net stop NS$StockInstance d. 取消註冊執行個體。 例如:nscontrol unregister -name StockInstance e. 如果您尚未進行這些操作,請解除安裝範例應用程式。 例如:cd Samples RemoveSamplesDB f. 關閉命令提示視窗。 4. 之後,您必須使用 NSControl 的 Notification Services 2.0 SP1 版本註冊及升級執行個體: a. 在 [開始]功能表上,選取 [程式集],指向 [程式集\Microsoft SQL Server Notification Services 2.0 SP1],再按一下 [Notification Services 命令提示字元] 以開 啟命令提示視窗。 b. 註冊執行個體。 例如:nscontrol register -name StockInstance -server MyDBServer -service -serviceusername "MyDomain\MyUserName" -servicepassword "" c. 升級執行個體。 例如:nscontrol upgrade -name StockInstance -server MyDBServer d. 授予 NS$ 服務帳戶權限以執行 SP1 延伸預存 程序: 例如:grantxpexec "MyDomain\MyUserName" e. 啟用執行個體。 例如:nscontrol enable -name StockInstance f. 啟動 NS$ 服務。 例如:net start NS$StockInstance 如果您已橫向擴充執行個體,意指 NS$ 服務、獨立 事件提供者,以及訂閱管理應用程式在多個伺服器上執行,則您必須 先在一個伺服器上執行以上程序,然後再於每台伺服器上取消註冊再 重新註冊該執行個體。 當您順利將執行個體升級到 SP1,即可以解除安裝 Notification Services 2.0.2114.0。 若需一般部署設定的指示,請從 http://go.microsoft.com/fwlink/?LinkId=16143 下載《將應用程式 升級到 Notification Services 2.0 SP1》白皮書。 *************************************************************** 4.0 產品及文件注意事項 *************************************************************** 這些是《Notification Services 線上叢書》文件完成後所發生的問題。 ---------------------------------------- 4.1 疑難排解:SSL 安全性錯誤 ---------------------------------------- 如果您在建立執行個體或執行 NS$ 服務時,接收到事 件記錄檔中的 SSL 安全性錯誤,則 Notification Services 可能無法 連線到 SQL Server 2000。造成此錯誤的原因可能是下列問題: * 如果「憑證伺服器」安裝在 Microsoft Windows 2000 電腦上,而且 「憑證授權單位 (CA)」名稱與機器主機名稱相同,或是以機器主機名 稱開頭,則嘗試連線到 SQL Server 2000 可能會失敗。 若要解決此問題,請取得 SQL Server 2000 最新的 Service Pack。若 需相關資訊,請造訪 http://support.microsoft.com?kbid=302409。 * 如果連線到執行 SQL Server 的目標伺服器,或連線到驗證 Windows 認證之伺服器的網路連線速度很慢,則 Notification Services 嘗試 連線到 SQL Server 可能會失敗。此問題只會在下列情況發生: 安全通訊端層 (SSL) 憑證安裝在執行 SQL Server 的電腦上,且該 SSL 憑證符合執行加密的需求。 若要解決此問題,請遵循知識庫文章編號: 322144 (網址為 http://support.microsoft.com?kbid=322144) 中的 指示。 ----------------------------------------------------- 4.2 執行 NSControl 升級程式之前,先停用執行個體 ----------------------------------------------------- 在執行 NSControl 升級程式以將 Notification Services 執行個體 從標準版升級到企業版之前,請先停用執行個體,再解除安裝標準版。 請使用下列步驟從標準版升級到企業版: 1. 使用 NSControl Disable 命令來停用所有使用標準版的執行個體。 2. 使用 Net Stop 命令來停止對應的 NS$ 服務。 3. 解除安裝 Notification Services Standard Edition。 4. 安裝 Notification Services Enterprise Edition。 5. 使用 NSControl Upgrade 將每一個使用標準版的執行個體升級到 企業版。 6. 使用 NSControl Enable 來啟用您升級的所有執行個體。 7. 使用 Net Start 命令來啟動相對應的 NS$ 服務。 ------------------------------------------------------- 4.3 EventCollector.Write 方法並未傳回數值 ------------------------------------------------------- 「EventCollector.Write 方法」主題顯示傳回整數值的方法。但 EventCollector.Write 並未傳回數值。此方法的更正資訊如下: [Visual Basic .NET] Public Function Write(ByVal As Object) [C#] public void Write(object ); [C++] public:void Write(Object* ); [JScript] public function Write( :Object); ------------------------------------------------------- 4.4 請勿使用大量通知批次大小的摘要傳送 ------------------------------------------------------- 如果您將應用程式定義檔中的 值設定為 True, 來啟用通知類別的摘要傳送,則請勿使用 元素來設定自訂通知批次大小。將 值設 得太大,可能導致 SQL Server 的連線數快速增加,而耗盡所有可用 的記憶體。 ------------------------------------------------ 4.5 文件中不正確的事件來源名稱 ------------------------------------------------ Notification Services 事件會記錄到 Windows 應用程式記錄檔中。 Windows 事件檢視器會在「來源」欄內的「應用程式登入」顯示事件 來源。NotificationServices 是所有 Notification Services 事件 的來源。「事件記錄概觀」與「選擇監視工具」主題,錯將來源記載 為 NS$。 ------------------------------------------------------- 4.6 疑難排解:安裝程式結束但沒有成功安裝 ------------------------------------------------------- 當您執行「安裝程式」時,如果立即出現「InstallShield 精靈已結 束」頁面,並包含下列文字,則可能是用來執行安裝程式的帳戶沒有 所需的權限: 精靈在 Microsoft SQL Server Notification Services 安裝完成之 前被中斷。您的系統尚未修改。若要在其他時間完成安裝,請重新執 行安裝程式。 首先,請確定用來執行安裝程式的帳戶,擁有本機「系統管理員」特 殊權限。如果該帳戶確有「系統管理員」特殊權限,而下列兩種情況 存在於電腦中,則該問題仍會發生: * 在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole 下,有登錄機 碼值 [DefaultAccessPermission] 存在。 * 指定給「元件服務」的預設存取權不包含執行「安裝程式」的帳 戶。 注意:依預設,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole 中並 沒有登錄值 DefaultAccessPermission。該值是由其他應用程式所建 立,或是當您使用「元件服務」工具將群組或使用者新增至 COM 的 預設存取權限時,才會建立該值。 若要將用來執行「安裝程式」的帳戶新增到「元件服務」: 1. 從 [開始] 功能表,按一下 [執行]。 2. 在 [執行] 方塊內,輸入 Dcomcnfg.exe 後,再按一下 [確定]。 3. 使用作業系統的指示來顯示 [預設 COM 安全性] 索引標籤: * 若是執行 Windows 2000 作業系統,按一下 [預設安全性] 索 引標籤。 * 若是執行 Windows XP 作業系統,則進行下列步驟: a. 瀏覽到 [元件服務]\[電腦]\[我的電腦]。 b. 在 [我的電腦] 上按一下滑鼠右鍵,並選取 [內容]。 c. 按一下 [預設 COM 安全性] 索引標籤。 4. 按一下 [編輯預設值] 按鈕。 5. 按一下 [新增] 按鈕,並新增用來執行「安裝程式」的帳戶。 -------------------------------------------------------------- 4.7 事件訊息指出找不到事件訊息 DLL -------------------------------------------------------------- 如果您在電腦上安裝有多個 Notification Services 版本,然後要解 除安裝某版本,則事件日誌中的 Notification Services 訊息可能包 含下列文字,表示執行個體找不到事件訊息 DLL。 找不到來源「NotificationServices」中的事件識別碼 ( #### ) 描 述。本機電腦中可能沒有從遠端電腦顯示訊息所需的登錄資訊或訊息 DLL 檔案.... 事件訊息的全文將在此文字之後顯示:然而,事件訊息之網頁內容的 連結並不包含此訊息。 若要修正此問題,請利用 NSControl Register 來重新登錄任何使用 已安裝之版本的 Notification Services 執行個體。這可修復指標 以指向事件訊息 DLL。若需相關資訊,請參閱 《Notification Services 線上叢書》的〈重新登錄執行個體〉。 ------------------------------------------------------- 4.8 加密引數機碼值為字元字串 ------------------------------------------------------- NSControl Create、NSControl Update 及 NSControl Register 等 命令,有個選用的「argumentkey」引數,可指定用來加密傳送通道 及事件提供者引數的機碼。此機碼值必須為字元字串。如果字串包含 任何空格,則必須用引號括住。若需相關資訊,請參閱 《Notification Services 線上叢書》的〈設定引數加密〉主題。 ----------------------------------------------- 4.9 停用訂閱者將停用執行個體 ----------------------------------------------- 如果您使用 NSControl Disable 來嘗試只停用執行個體的訂閱者, NSControl 會停止整個執行個體及其所裝載的所有應用程式。 若要解決此問題,請使用下列兩種方法之一: * 在您停用訂閱者元件後,使用 NSControl Enable 來重新啟用執 行個體的所有其他元件: nscontrol enable -n -distributor -events -generator -subscriptions * 當停用訂閱者時,併入另一元件,以停用再重新啟用該元件: nscontrol disable -n -generator -subscribers nscontrol enable -n -generator 您可以使用 NSControl Status 命令來檢查執行個體的狀態: nscontrol status -n --------------------------------------------------------- 4.10 未記錄內容格式化錯誤所造成的傳送失敗 --------------------------------------------------------- 如果因為內容格式化錯誤 (如無效的 XSLT 檔案),而無法傳送通知, 則該通知不會記錄為失敗。這會造成下列的錯誤結果: - 可從 NSNotificationDistribution 檢 視加以檢視的散發記錄,並不會包含因內容格式化錯誤而失敗的 通知。 - NSDiagnosticNotificationClass 預存程序會將部份失敗的通知顯 示為「尚未傳送」(在 NotificationsNotYetDelivered 欄中),因 為這些通知並不會在散發記錄中標示為失敗。 --------------------------------------------------------- 4.11 當在叢集上執行 Notification Services 時, 值必須是叢集名稱 --------------------------------------------------------- 當您建立一個 Notification Services 應用程式時,您必須指定散 發者、產生器,以及裝載的事件提供者元件執行的位置。若要執行 這項動作,您要在 ADF 中的每個 節點提供 元素的值。NSControl 會將這些資料載入應用程式資料庫中。 當 NS$ 服務啟動時,它會先決定在哪個位置執行 (其主機名稱),再將此值與散發者、裝載的事件提供者和產生器的 值進行比較。如果主機名稱與 值相 符,服務即會啟動元件。不相符的元件會標為「啟用擱置」狀態。 服務會以下列方式決定其主機名稱: * 若是非叢集伺服器,主機名稱則為電腦名稱。 * 若是叢集伺服器,主機名稱為叢集名稱 (不是節點或虛擬伺服器 名稱)。 因此,當您在叢集執行 Notification Services 時, 值必須是叢集名稱。 ---------------------------------------------------------- 4.12 SP1:NSControl Create 啟用跨資料庫的擁有權鏈結: 需要系統管理員 (Sysadmin) 權限 ---------------------------------------------------------- SQL Server 2000 SP3 提供設定跨資料庫擁有權鏈結的選項。當您 安裝 SP3 時,所有使用者的跨資料庫擁有權鏈結都預設為停用。 在安裝之後,您可以使用 sp_dboption 系統預存程序啟用個別資 料庫的跨資料庫擁有權鏈結。 當 Notification Services 的執行個體使用兩個以上的資料庫時: 一個執行個體資料庫與一個以上的應用程式資料庫。這些資料庫需 要跨資料庫擁有權鏈結,才能讓 Notification Services 預存程 序存取執行個體與應用程式資料庫中的物件。 當您執行 NSControl Create 時,NSControl 會嘗試啟動執行個體 及應用程式的跨資料庫擁有權鏈結。如果 SQL Server 2000 資料 庫是 SP3 之前的版本,則會忽略跨資料庫擁有權鏈結命令。 只有系統管理員 (sysadmin) 固定伺服器角色的成員可以設定跨資 料庫擁有權鏈結。因此,NSControl 只有在由 sysadmin 伺服器角 色的成員執行的情況下,才會開啟跨資料庫擁有權鏈結。屬於 dbcreator 固定伺服器角色成員的使用者,也可以執行 NSControl Create,但必須先啟動執行個體與應用程式的跨資料庫 擁有權鏈結。 因此,如果您要執行 NSControl Create,但您不是系統管理員 (sysadmin) 伺服器角色的成員,在您執行 Notification Services 的執行個體前,必須請一位系統管理員 (sysadmin) 伺服器角色的成員先啟用執行個體與應用程式資料 庫的跨資料庫擁有權鏈結。 可在《SQL Server 2000 線上叢書》(最新版 - SP3) 中取得跨資 料庫擁有權鏈結的其他資訊。下列主題涵蓋跨資料庫擁有權鏈結: - 跨資料庫擁有權鏈結的回溯相容性 - 使用擁有權鏈結 - sp_dboption - 設定組態選項 您可以從 http://go.microsoft.com/fwlink/?LinkId=16144 下載 《SQL Server 2000 線上叢書》(最新版 - SP3)。 ------------------------------------------------------------ 4.13 SP1:以 XSLT 內容格式器寫入純文字 ------------------------------------------------------------ 在 Notification Services 2.0 中,XSLT 內容格式器會永遠寫入 有效的 XML。因此,它會將以下字元記錄為其實體參照: > (>), < (<), ' ('), " ("), and & (&). 在 SP1 中,XSLT 內容格式器可以寫入純文字,其會將實體參照轉 換為字元對等表。您可使用 xsl:output 元素來設定文字輸出: 以下範例是 "NoOp.xslt" 檔案,包含設定於文字的輸出方法,以及 新增來顯示已轉換實體參照的某些文字: Today's Notifications: SP1 中的變更會改變 XML 輸出的格式設定。依預設,XSLT 內容格式 器會寫入沒有換行字元及縮排的 XML。您可以使用 "xsl:output" 元 素的 "indent" 屬性來自動縮排 XML。 如果事件資料包含保留字元或實體參照,請注意下列事項: * 如果事件資料包含 XML 片段的實體參照,請將內容格式器的 DisableEscaping 屬性設定為 true,如此一來,內容格式器才不會 過度轉換資料 (例如將 & 轉換為 &amp;)。 * 如果事件資料包含保留字元 (如 &),則請將內容格式器的 DisableEscaping 屬性設定為 false,如此一來,內容格式器才能 在最終轉換之前,將保留字元轉換為有效的 XML。 若需 xsl:output 元素的相關資訊,請參閱 MSDN Online 的下一頁:http://go.microsoft.com/fwlink/?LinkId=16145。 --------------------------------------------------------- 4.14 SP1:NSDiagnosticFailedNotifications 預存程序的變更 --------------------------------------------------------- 在 Notification Services 2.0 中, NSDiagnosticFailedNotifications 預存程序沒有回傳失敗的通知。 這個問題已在 Notification Services 2.0 SP1 解決。 NSDiagnosticFailedNotifications 會為每個失敗的傳送嘗試回傳 一行記錄。如果一個通知失敗多次,在結果集內會出現多行關於此 通知的記錄。 請注意結果集中的欄位已經變更。 已新增下列兩欄: - DeliveryRequestTime - SentTime DeliveryRequestTime 是散發者傳送通知到傳送通訊協定的時間。 當 散發者在 ADF 的登入選項設為 "true" 時顯示的值。 SentTime 是傳送通訊協定報告通知傳送狀態的時間。 請注意報告會顯示所有失敗的通知,以及執行 NSDiagnosticFailedNotifications 時,在 StartDateTime 及 EndDateTime 之間所提供的值。 已移除下列兩欄: - NumberOfDeliveryAttempts - LastFailureTime 更新預存程序的文件位於「Microsoft 產品支援服務」網站, 網址為:http://support.microsoft.com?kbid=818352。 ----------------------------------------------------------- 4.15 使用以 .NET Framework 版本 1.1.4322 建置的自訂元件 ----------------------------------------------------------- Notification Services 2.0 SP1 是使用 .NET Framework 版本 1.0.3705 進行建置。依預設,Notification Services 會嘗試載入及使用此版本。 如果使用 .NET Framework 版本 1.1.4322 來建置自訂元件,也會載入 此版本。若 Notification Services 及元件使用不同版本的 .NET Framework,類別庫的差異會造成應用程式錯誤,如下所示: * 2009: Notification Services 無法起始事件提供者。 * 6005: 組件不包含必要的內容格式器類別。 若要解決這些錯誤,請使用 .NET Framework 版本 1.0.3705 來建置 自訂元件。若要執行此項操作,請將包含 1.0.3705 組件的目錄新增 到自訂元件專案的參照路徑。 如果您必須以 .NET Framework 版本 1.1.4322 建置自訂元件,則可 以強制 Notification Services 使用同一版本。若要執行此項操作, 請將 節點新增到 NSService.exe.config 檔案 (位於 Notification Services 的 vN.N.N.N\Bin 資料夾)。下列範例顯示 包含 節點的檔案: 元素會限制 Notification Services 可以使用 的 .NET Framework 版本。所列出的版本順序決定 Notification Services 嘗試載入 .NET Framework 版本的順序。在 上述範例中,Notification Services 會先嘗試載入 .NET Framework 版本 1.1.4322。如果無法使用,Notification Services 則會嘗試載 入 .NET Framework 版本 1.0.3705。 您必須重新啟動 NS$ 服務,才能將所作的變更套用 到 NSService.exe.config。