2010-07-12 62 views
0

我在asp.net中有一個管理頁面,它將數據添加到數據庫中。該數據庫作爲JSON字符串提供給外部網站,但是,由於數據量很大,因此外部網站會在本地緩存這些數據。從不同的asp.net頁面調用asp.net頁面(ashx處理程序)

我希望能夠ping外部網站,讓他們知道數據已更改,以便他們可以刷新其緩存。我想我可以設置一個ASHX處理程序,該處理程序接收一個參數,告訴他們哪些數據已更改,因此它們都可以刪除該數據並將其刷新。

我不確定的唯一部分是從我的管理頁面調用此外部頁面的最佳方式。我只是做一個普通的WebRequest並放棄結果?或者當您不需要響應時,是否有更簡單的方法從代碼調用頁面?

基本上我只是想「ping」這個頁面,所以它知道它需要刷新。

謝謝!

+0

聽起來像是一個web服務工作給我。我想你可以使用ashx,但asp.net已經支持調用Web服務。 – Greg 2010-07-12 18:52:28

回答

1

您可以在數據庫中設置標誌。這將把這變成一個更簡單的任務。

如果不存在替代辦法,你可以使用WebClient類:

using (var wc = new WebClient()) 
{ 
    wc.DownloadString(address); 
} 
+0

我同意。客戶端需要檢查更新/緩存失效。 – 2010-07-12 19:28:32

+0

我通常會同意,但每年的每一天都有一個JSON字符串(這就是數據緩存的方式),所以我不能讓外部網站檢查每個請求上的標記。 最實際的方法似乎是ping客戶端,並讓它知道數據已過期。這不是理想的,但性能明智的,這是我可以想出來實現自動化的最佳方式... – SelAromDotNet 2010-07-12 19:45:49

2

如果你只是想調用遠程頁面,則可以使用WebRequest類。 http://msdn.microsoft.com/en-us/library/debx8sh9.aspx

WebRequest request = WebRequest.Create("http://my.domain.ext/page.ashx"); 
using(WebResponse response = request.GetResponse()) { 
    response.Close(); 
} 

如果你想要做更高級的東西,一個Web服務會更合適。