共用方式為


新聞範例

更新: 2006 年 7 月 17 日

「新聞」範例顯示如何建立簡單的網路架構訂閱管理應用程式。範例具有多層式設計,包含以 HTML 為基礎的介面層與訂閱管理中介層。Microsoft Visual Studio Web 專案會在執行 Web 專案時建立 Visual Web Developer Web Server,讓您能夠更輕鬆地使用範例。IA64 不支援此範例。

狀況

Adventure Works Cycles 要發行客戶導向的新聞以及主辦者促銷事件。使用此應用程式,客戶可以訂閱以接收這些有關促銷事件的新聞與通知。

客戶使用網頁來建立資訊類型 (新聞或促銷) 的訂閱,並在應傳遞 (事件驅動或依排程) 時選取它。

在 Adventure Works Cycles 上,包含新聞資料與促銷事件資料的檔案會置放於監看資料夾。產生器執行時,它會執行事件紀事輯規則以更新用於已排程之訂閱的紀事輯,然後針對未處理的事件批次執行事件驅動規則,再為所有到期進行處理的已排程訂閱執行排程的訂閱規則。執行排程的訂閱規則時,它會更新用於追蹤 (追蹤每個訂閱上次產生通知的時間) 的訂閱紀事輯。此資訊用於確定不會有重複的通知。

通知會在下列條件下產生:

  • 事件的文件類型 (新聞或促銷) 符合訂閱中的文件類型。
  • 新聞或事件的類別符合訂閱中的類別。
  • 如果訂閱是排程的訂閱,則排程時間會位於上一產生器規則引發與目前產生器規則引發之間的間隔內。
  • 如果訂閱是已排程的訂閱,則資料庫認可事件的時間要大於訂閱最後產生通知的時間。

產生的通知會使用 XSLT 內容格式器進行格式化,然後使用 File 傳遞通訊協定來傳送。

語言

XML、XSD、XSLT 和 Microsoft Visual C# 或 Microsoft Visual Basic。

功能

「新聞」範例會使用 Microsoft SQL Server Notification Services 的下列功能。

應用程式區 功能

事件類別

事件驅動訂閱的基本事件類別,以及已排程之訂閱的事件紀事輯。

訂閱類別

事件驅動和已排程的訂閱。

通知類別

摘要傳遞。

事件提供者

檔案系統監看員事件提供者。

內容格式器

XSLT 內容格式器。

傳遞通訊協定

File 和 SMTP 傳遞通訊協定。

訂閱管理應用程式

使用 Visual Web Developer Web Server 的 Microsoft ASP.NET。

必要條件

執行此範例之前,請確定已安裝下列軟體:

  • Microsoft SQL Server 2005,包括下列元件:
    • Database Engine。
    • Notification Services。
    • SQL Server Management Studio。
    • Notification Services 範例。SQL Server 2005 中隨附這些範例。您可以從 SQL Server 開發人員網站下載最新版的範例。
  • Microsoft Visual Studio 2005,包括 Visual Web 設計工具

建立範例

若要建立範例,您將需要執行下列動作:

  • 建立 Notification Services 的執行個體。
  • 註冊 Notification Services 的執行個體。
  • 授與 SQL Server 和資料庫權限。

下列程序示範如何執行「新聞」範例的這些工作。

步驟 1:建立 Notification Services 的執行個體

  1. 開啟 SQL Server Management Studio,並連接到 SQL Server 的執行個體。

  2. 在 [物件總管] 中,以滑鼠右鍵按一下 [Notification Services] 資料夾,然後選取 [新的 Notification Services 執行個體]

  3. [新的 Notification Services 執行個體] 對話方塊中,按一下 [瀏覽],並選取「新聞」範例之根資料夾中的 InstanceConfig.xml 檔案。

  4. [參數] 方塊中,輸入三個參數的值:

    • SampleDirectory 是「新聞」範例之根資料夾的路徑。預設路徑為 C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Newsletter。
    • NotificationServicesHost 是本機伺服器的名稱。
    • SQLServer 是 SQL Server 執行個體的名稱。
  5. 選取 [建立執行個體之後啟用它] 核取方塊。

  6. 按一下 [確定]

  7. 當 Notification Services 完成建立執行個體時,請按一下 [關閉]

步驟 2:註冊 Notification Services 的執行個體

  1. 在 SQL Server Management Studio 中,開啟 Notification Services 節點,以滑鼠右鍵按一下 [NewsletterInstance],指向 [工作],然後選取 [註冊]

  2. [註冊] 對話方塊中,選取 [建立 Windows 服務] 核取方塊。Windows 服務會在此電腦上執行 Notification Services 的執行個體。

  3. [服務登入] 下方,輸入 Windows 帳戶和密碼。這是執行服務時將使用的 Windows 帳戶。如果使用「Windows 驗證」來存取 SQL Server,則 Windows 服務也會使用此帳戶連接到 SQL Server。

  4. 如果必須使用「SQL Server 驗證」來存取 SQL Server,請選取 [驗證] 下的 [SQL Server 驗證],然後輸入 SQL Server 的登入名稱和密碼。

    建議使用「Windows 驗證」。

  5. 按一下 [確定]

  6. 當 Notification Services 完成註冊執行個體時,請按一下 [關閉]

ms160957.note(zh-tw,SQL.90).gif附註:
如果使用資料庫擁有者或系統管理員帳戶部署 Notification Services 範例,則不需要將 SQL Server 權限授與該帳戶。授與這些權限可能會導致錯誤,但您可以忽略這些錯誤。部署自己的應用程式時,應該使用較低權限的帳戶來協助增進安全性。

步驟 3:授與 SQL Server、資料庫和資料夾權限

  1. 在 [物件總管] 中,展開 [安全性] 節點。

  2. 如果需要建立新 Windows 服務的資料庫登入帳戶,請以滑鼠右鍵按一下 [登入],選取 [新增登入],然後建立登入帳戶:

    • 若要使用「Windows 驗證」,請選取 [Windows 驗證],並輸入註冊執行個體時指定的 Windows 帳戶。
    • 如果必須使用「SQL Server 驗證」,請選取 [SQL Server 驗證],然後輸入註冊執行個體時指定的 SQL Server 登入和密碼。
  3. 如果 Windows 服務所使用的登入已經具有對 SQL Server 的存取權限,請以滑鼠右鍵按一下登入,並選取 [屬性]

  4. [登入] 對話方塊的左窗格中,選取 [使用者對應]

  5. 授與 NewsletterInstanceNSMain 資料庫的權限:

    1. [已對應到此登入的使用者] 方塊中,選取 [NewsletterInstanceNSMain]
    2. [NewsletterInstanceNSMain 的資料庫角色成員資格] 方塊中,選取 [NSRunService]
  6. 授與 NewsletterInstanceNewsletter 資料庫的權限:

    1. [已對應到此登入的使用者] 方塊中,選取 [NewsletterInstanceNewsletter]
    2. [NewsletterInstanceNewsletter 的資料庫角色成員資格] 方塊中,選取 [NSRunService]
  7. 按一下 [確定] 以套用 SQL Server 權限。

  8. 使用 [Windows 檔案總管] 設定 [事件] 資料夾的安全性:

    1. 導覽到「新聞」範例的 [事件] 資料夾。
    2. 以滑鼠右鍵按一下 [事件] 資料夾,選取 [共用和安全性],然後選取 [安全性] 索引標籤。
    3. 按一下 [加入],並加入 Windows 服務使用的帳戶。
    4. [群組或使用者名稱] 方塊中,選取剛加入的帳戶。
    5. [的權限] 方塊中,選取 [讀取][修改] 權限。
    6. 按一下 [確定] 以套用這些變更。
  9. 設定 [通知] 資料夾的安全性:

    1. 導覽到「新聞」範例的 [通知] 資料夾。
    2. 以滑鼠右鍵按一下 [通知] 資料夾,選取 [共用與安全性],然後選取 [安全性] 索引標籤。
    3. 按一下 [加入],並加入 Windows 服務使用的帳戶。
    4. [群組或使用者名稱] 方塊中,選取剛加入的帳戶。
    5. [權限] 方塊中,選取 [寫入]
    6. 按一下 [確定] 以套用這些變更。

執行範例

若要執行範例,您需要執行下列動作:

  • 啟動執行個體。
  • 使用 Web 應用程式加入訂閱者和訂閱。
  • 卸除包含事件的 XML 檔案。

下列程序顯示如何執行這些工作,以及之後如何檢視產生的通知。

步驟 1:啟動執行個體

  1. 在 [物件總管] 中,開啟 [Notification Services] 資料夾。

  2. 以滑鼠右鍵按一下 [NewsletterInstance],然後選取 [啟動]

步驟 2:加入訂閱者和訂閱

  1. 開啟 Visual Studio 2005。

  2. [檔案] 功能表上,指向 [開啟],然後按一下 [網站]

  3. [開啟網站] 對話方塊中,導覽到「新聞」範例的 SubscriptionManagementWeb\cs\SubscriptionManagementWeb 資料夾,並選取 [開啟]

  4. 按 F5 鍵以執行 Web 應用程式。

    使用網頁將範例使用者的訂閱加入至「新聞」應用程式。預設訂閱值將產生通知。

ms160957.note(zh-tw,SQL.90).gif附註:
如果是使用實際執行的應用程式,或者您是使用受限制的帳戶執行這個應用程式,請在執行個體及應用程式資料庫中,將應用程式的 SQL Server 登入加入到 NSSubscriberAdmin 資料庫角色。

步驟 3:提交事件

  1. 在 [Windows 檔案總管] 中,導覽到「新聞」範例的根資料夾,然後將 EventData.xml 檔案複製到 [事件] 子資料夾。

    置放檔案時,檔案系統監看員事件提供者將從檔案讀取資料,並將其提交給應用程式,然後將副檔名變更為 .done。

    如果讀取或提交資料時發生錯誤,事件提供者會將副檔名變更為 .err。如需有關錯誤的其他詳細資料,請查詢「Windows 事件檢視器」。

步驟 4:檢視通知

  1. Notification Services 大約需要一分鐘產生通知。

  2. 使用 [Windows 檔案總管],導覽到「新聞」範例的 [通知] 資料夾。您應該找到名為 FileNotifications.txt 的檔案。此檔案包含通知。

  3. 導覽到要卸除電子郵件訊息的資料夾。它通常是 C:\Inetpub\mailroot 中的資料夾之一。通知應位於 [收取] 資料夾或 [佇列] 資料夾,視 SMTP 伺服器狀態而定。如果 SMTP 服務正在執行,訊息可能會移至 [垃圾郵件] 資料夾。

移除範例

使用下列程序移除「新聞」範例。

若要移除新聞範例

  1. 在 [物件總管] 中,開啟 [Notification Services] 資料夾。

  2. 以滑鼠右鍵按一下 [NewsletterInstance],然後選取 [停止]

  3. 以滑鼠右鍵按一下 [NewsletterInstance],指向 [工作],然後選取 [取消註冊]

  4. 以滑鼠右鍵按一下 [NewsletterInstance],指向 [工作],然後選取 [刪除]

請參閱

其他資源

SQL Server Notification Services 範例
保全 Notification Services

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 7 月 17 日

變更的內容:
  • 新增 Visual Web 設計工具做為執行此範例的必要條件。

2006 年 4 月 14 日

變更的內容:
  • 新增有關使用資料庫擁有者權限執行範例的注意事項。