2011-01-11 48 views
0

我有一個asp.net mvc應用程序需要一段時間來加載我的生產服務器。我想編寫一個腳本來每10分鐘打電話給我的頁面,以避免頁面在服務器上被廢棄,這會導致服務器重新加載它們。如何使用SQL CLR方法調用網頁?

我想使用SQL Server存儲過程調用我的網頁,每10分鐘以保持頁活着。

我讀過,我可以做到這一點使用CLR,但我不知道怎麼樣。有沒有人有一個如何使用CLR在SQL存儲過程中調用網頁的例子?

回答

6

我不知道你爲什麼會想使用存儲過程這一點。

只寫一個簡單的控制檯應用程序「呼」的頁面。然後使用計劃任務運行控制檯應用程序。

+0

我繼續建立一個Windows服務應用程序來做到這一點。 – Bill 2011-01-11 21:57:09

1

代碼未經測試,但類似的東西應該工作。

您可能還需要TRUSTWORTHY SET。

ALTER DATABASE Foo SET TRUSTWORTHY ON; 

代碼:

public partial class WebProc 
{ 
    [SqlFunction()] 
    public static string WebQuery() 
    { 
     WebRequest request = HttpWebRequest.Create("http://www.google.com"); 
     WebResponse response = request.GetResponse(); 
     Stream dataStream = response.GetResponseStream(); 
     StreamReader reader = new StreamReader (dataStream); 
     string responseFromServer = reader.ReadToEnd(); 
     return responseFromServer; 
    } 
} 
+1

-1:特別是在SQL Server內部,我認爲你最好把response,dataStream和reader放入`using`塊中。 – 2011-01-13 04:08:37

0

我不知道你爲什麼會想使用存儲過程這一點。

只寫一個簡單的控制檯應用程序「呼」的頁面。然後使用計劃任務運行控制檯應用程序。

可能做到這一點(當然),但是這不是問題,問什麼;)

Jafin的回答是這個問題是正確的。

最好答案(恕我直言)將解決您的生產服務器(即重新配置設置),因此它不「廢」你每10分鐘頁。

爲什麼要使用手持式鑿岩機(控制檯應用程序或.NET數據庫或任何內)時,經常一個會做什麼?