- - PR -
ASP.NET:バックグラウンドで処理をさせるには?
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-10-22 10:56
いつもお世話になっております。m(__)m
自社システムに、ASPによる「会員へのメール送信」という処理があります。 ブラウザで件名と本文を入力して送信ボタンを押すと、バックグラウンドで1000人ほどの会員へ一斉配信を開始するバッチを起動するというものです。 このバッチはVBSで書かれており、CDONTSを使ってメール送信をしていました。 また、ASPからこのVBSの起動をするには Set wsh_obj = Server.CreateObject("WScript.Shell") wsh_obj.Run "CScript Mailsend.vbs" と記述していました。 今回これをWindows Server 2003のASP.NETに乗せ変えようとしています。 Windows Server 2003ではCDONTSがサポートされていないためそのままの運用ができません。 変わりになるものを作成するにもその実現方法が???という状況です。 VB.NETで、SYSTEM.Web.Mailを使って特定のテストアドレス(1宛先)にメールを送る、というものは作成できました。 でもバックグラウンドで、データベースに入っている会員データにアクセスしながら、SYSTEM.Web.Mailのクラスを使用してメールを順次送信する・・・となると、VBで「何」を「どう」作り、ASP.NETから「どう」呼び出せばよいのかが分かりません。 「非同期」「マルチスレッド」などの単語をキーワードにして調べてみたのですが今一ピンときません。 その方法、仕組みなど、参考情報がありましたら、ぜひ教えていただけないでしょうか? よろしくお願いいたします。 | ||||||||
|
投稿日時: 2003-10-23 08:58
ASP.Netでも簡単にできますよ。まずはサンプルを動かしてみましょう。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconasynchronousprogramming.asp | ||||||||
|
投稿日時: 2003-10-23 09:34
回答ありがとうございました。
この手のページは、初心者には結構難しいですが、慣れていかなければならないのでしょうね (^^;) ようはメインのASP.NETから別のプログラムを呼び出す、ということではなく 処理完了を待たないでいい処理を実行できる・・・ ということでしょうか? ちょっとまだ理解が浅いので、よく読んでみようと思います。 あらためてご報告致します。 ありがとうございました。 | ||||||||
|
投稿日時: 2003-10-23 13:49
上記教えていただいた非同期関連のページに目を通してみました。
たぶん、私がやりたいことの参考になるのは 「非同期呼び出し完了時のコールバック メソッドの実行」あたりだと思うのですが たとえばASP.NETでButton1を押したらTESTmethodを起動する、とした場合 Button1_Click()の関数部分には、どこを記述したらよいのでしょうか? サンプルを試してみようとVB.NETで、WEBアプリの作成からやってみたのですが 記述する場所がわかりませんでした。 サンプルはASP.NETではなく、VB・・・ですよね? 勉強不足な点もあるかと思いますが、いま少しよろしくお願いいたしますm(__)m | ||||||||
|
投稿日時: 2003-10-23 14:54
再び自己レスです。
コンソールプログラムという切り口もあるようです。 もう少し調べてみようと思います。m(__)m | ||||||||
|
投稿日時: 2003-10-23 16:50
Execボタンで非同期処理を開始し、Refreshボタンで処理状態を確認するだけのサンプルです。 とりあえずブレークポイントはって動作を確認してみてください。
| ||||||||
|
投稿日時: 2003-10-24 00:35
他のMLでも質問しているようですから、もういいですね。
| ||||||||
|
投稿日時: 2003-10-24 08:49
投稿したのはコチラが先だったのですが、返答がなかなかなかったので他の所でも聞いてしまいました。
不快に思われたら大変申し訳ありませんでしたm(__)m 今は頂いたサンプルを自分なりにVBの記述に直して(Cはやったことが無いので^^;)実行してみています。 別のMLとは解決策が違うので、どりらもやってみようと思っています。 自分の中で解決とまではまだ行っていませんが、大変参考になりました。 ご協力ありがとうございましたm(__)m |