2011-01-11 10 views
0

私はasp.net mvcアプリケーションを使用して、プロダクションサーバーにロードするのに時間がかかります。私は10分ごとにページを呼び出すためのスクリプトを書いて、ページがサーバー上で破棄されないようにして、サーバーがそのページをリロードするようにしたいと考えています。SQL CLRメソッドを使用してWebページを呼び出すにはどうすればよいですか?

SQL Serverのストアドプロシージャを使用して、ページを呼び出して10分ごとに呼び出して、ページを有効に保つことを検討していました。

私はCLRを使用してこれを行うことができますが、わかりません。誰もCLRを使用してSQLストアドプロシージャのWebページを呼び出す方法の例がありますか?

答えて

6

なぜこのようなストアドプロシージャを使用するのかわかりません。

ページを呼び出すための簡単なコンソールアプリケーションを作成するだけです。次に、スケジュールされたタスクを使用してコンソールアプリケーションを実行します。

+0

これを行うためにWindowsサービスアプリケーションを作成しました。 – Bill

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内部では、 'using'ブロックの中にresponse、dataStream、readerを入れたほうがいいと思います。 –

+0

@ジョン。コードを安全にすることができます。これは、単に「どうすればよいのか」という質問を説明することに過ぎませんでした。私は "私は質問すべき"と回答していない。 – Jafin

+0

あまりにも多くの開発者が、SOや他の場所に表示されているものをコピー/貼り付けています。コードを修正し、私はdownvoteを削除します。 –

0

私はあなたがこのためにストアドプロシージャを使用する理由はわかりません。

ページを呼び出すための簡単なコンソールアプリケーションを作成するだけです。次に、スケジュールされたタスクを使用してコンソールアプリケーションを実行します。

Jafinの答えは、質問に対して正しいです)。

あなたは(もちろん)ということが、それは質問が求めていたものではありません行うことができます。

ベスト回答(IMHO)は、10分ごとにページを「スクラップ」しないように、プロダクションサーバーを修正する(つまり、設定を再構成する)ことです。

通常の操作でジャックハンマー(コンソールアプリまたはデータベース内の.netなど)を使用するのはなぜですか?

関連する問題