- - PR -
ASP.NETアプリからサーバー上のWinForm.exe(VB)を実行時に値を渡したい
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-03-26 20:15
こんばんは。
今までASPアプリから250枚ほどの帳票をクライアントPCへPDF出力していたのですが処理速度等に問題があり接続が切れてしまいます。今後出力データが増える可能性があるため別な方法を考える事になり、現在検討しているのがPOST時にサーバー上の帳票出力用のWinFormのexeを動かしプリンタに出力させる方法です。 exeそのもはASPより起動できるのですが帳票の出力条件としてSessionに持っている値をexeに渡しexeで受け取り帳票を出力させたいのですがですがいまいち良い方法が見つかりません・・・、何かご存知の方がいましたらご意見、ご教授お願いします。 以下がサーバーの環境です。 .NET FRAMEWORK1.0 SP2 Windows2000server | ||||||||
|
投稿日時: 2004-03-26 20:36
>帳票の出力条件としてSessionに持っている値をexeに渡し
ということは、データそのものはDBなどから直接取ってくるということですか? それなら条件もDBに入れてみるというのはどうでしょう。 帳票印刷予約のキューのような働きをするテーブルを作って、exeでそれを見るとか。 あるいはexe起動のコマンドライン引数に条件を指定するというのもありですかね。 >いまいち良い方法が見つかりません ということは、もうこのくらいなことは考えて「もうちょっと良い方法」ということかもしれませんね。 それならお役に立てずにすいません。パッと思いついたことを書いただけですので。 | ||||||||
|
投稿日時: 2004-03-26 21:01
一郎さんレスありがとうございます。
この方法は上司に却下されてしまい使えないんですよ・・・ 検索条件も複数パターンがあるのでイメージ的には引数みたいなものをいくつか渡すような形をとりたかったんですよ、調べたんですがいまいちピンとくる物がなくて・・・ ところでコマンドラインの引数とはこの値ですかね? ↓ System.Diagnostics.Process.Start("C:\PRINT.EXE", "999") | ||||||||
|
投稿日時: 2004-03-29 09:26
どれくらいのアクセスが見込まれるのでしょう?また、Winアプリのインスタンスは単数?複数?
たとえば、セッションIDをファイル名にしたファイルを作成し、それへのリンクをページに貼り付けて、クライアントにPDFファイルをダウンロードさせるというのはどうでしょう?もちろん、セッションが切れるときにファイルを削除することを忘れてはいけません。 | ||||||||
|
投稿日時: 2004-03-29 09:29
すいません、返信を忘れていました。
>ところでコマンドラインの引数とはこの値ですかね? 矢印がずれて見えますが、おそらくそれです。 exeのファイル名の後に-rなどのオプションやファイル名などを渡しますよね、あれです。 | ||||||||
|
投稿日時: 2004-03-30 15:47
Jittaさんレスありがとうございます。
アクセスは現状20クライアント程度、Win.exeのインスタンスは複数です。
おおっ、なるほどセッションIDをファイル名にしたファイルを作成して切り分けるのは使えそうですね。 とりあえずセッションIDをファイル名にしてサーバーの指定フォルダに作成、引数をCSVにしたものをデータとしてファイルの中身を作り、Win.exeでArrayにファイルデータを格納してデータを抽出、処理が終わった時点でファイル削除といった方向でやってみましたが、ほぼ問題ないです。 一郎さん、Jittaさんどうもありがとうございました。 |
1