2012-08-03 58 views
1

我剛剛開始使用SQL-CLR創建一個非常基本的觸發器......但是當我這樣做了另一個問題「猛踩」...... 有沒有辦法實際使SQL觸發器觸發一個基於web的方法,應用程序?.. 我的第一個想法是有一個Web服務,它將位於SQL-CLR然後調用的Web應用程序中。 整個想法是,一旦觸發器被「觸發」,它會調用一個SignalR-hub,然後警告客戶端有關數據庫中發生的事情.. 整個事情對我來說更實驗.. 我不能使用網絡服務方式..因爲它會需要一個額外的請求每次觸發得到「觸發」在Web應用程序中CLR觸發器?

回答

4

不要從觸發器進行HTTP調用。引入這種耦合會使性能下降,會降低可用性,增加延遲並使系統非常脆弱(HTTP故障會導致引發事務故障的觸發器故障)。

將HTTP調用與觸發器解耦。在觸發器中,將呼叫請求放在queue中,並且從監視隊列的外部進程完成HTTP請求。

監視數據庫更改的系統已存在,Query Notification用於實時更改,Change Tracking用於斷開連接的系統。

+0

你有任何示例網站,我可以閱讀更多關於你描述的有關隊列的東西嗎? 謝謝! – Inx 2012-08-03 09:38:51

+0

哦!..以及..即時通訊試圖完成的事情是,我不想要一個額外的請求..我只是希望觸發器在web應用程序中執行一個功能,而無需Web服務或任何形式的HTTP請求..我不知道它是否有可能:) ..但是.. .. – Inx 2012-08-03 09:41:55

+0

現在我得到隊列的東西..你像一個額外的應用程序讀取隊列,然後做HTTP請求.. for實例一個Windows服務.. – Inx 2012-08-03 09:57:10