- PR -

ASP.NETアプリからサーバー上のWinForm.exe(VB)を実行時に値を渡したい

1
投稿者投稿内容
ダンクーガ
常連さん
会議室デビュー日: 2003/03/14
投稿数: 48
お住まい・勤務地: 千葉県
投稿日時: 2004-03-26 20:15
こんばんは。

今までASPアプリから250枚ほどの帳票をクライアントPCへPDF出力していたのですが処理速度等に問題があり接続が切れてしまいます。今後出力データが増える可能性があるため別な方法を考える事になり、現在検討しているのがPOST時にサーバー上の帳票出力用のWinFormのexeを動かしプリンタに出力させる方法です。
exeそのもはASPより起動できるのですが帳票の出力条件としてSessionに持っている値をexeに渡しexeで受け取り帳票を出力させたいのですがですがいまいち良い方法が見つかりません・・・、何かご存知の方がいましたらご意見、ご教授お願いします。

以下がサーバーの環境です。
.NET FRAMEWORK1.0 SP2
Windows2000server

一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-03-26 20:36
>帳票の出力条件としてSessionに持っている値をexeに渡し

ということは、データそのものはDBなどから直接取ってくるということですか?
それなら条件もDBに入れてみるというのはどうでしょう。
帳票印刷予約のキューのような働きをするテーブルを作って、exeでそれを見るとか。

あるいはexe起動のコマンドライン引数に条件を指定するというのもありですかね。

>いまいち良い方法が見つかりません

ということは、もうこのくらいなことは考えて「もうちょっと良い方法」ということかもしれませんね。
それならお役に立てずにすいません。パッと思いついたことを書いただけですので。
ダンクーガ
常連さん
会議室デビュー日: 2003/03/14
投稿数: 48
お住まい・勤務地: 千葉県
投稿日時: 2004-03-26 21:01
一郎さんレスありがとうございます。

引用:

一郎さんの書き込み (2004-03-26 20:36) より:
それなら条件もDBに入れてみるというのはどうでしょう。
帳票印刷予約のキューのような働きをするテーブルを作って、exeでそれを見るとか。


この方法は上司に却下されてしまい使えないんですよ・・・
検索条件も複数パターンがあるのでイメージ的には引数みたいなものをいくつか渡すような形をとりたかったんですよ、調べたんですがいまいちピンとくる物がなくて・・・


ところでコマンドラインの引数とはこの値ですかね?
               ↓
System.Diagnostics.Process.Start("C:\PRINT.EXE", "999")

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-29 09:26
 どれくらいのアクセスが見込まれるのでしょう?また、Winアプリのインスタンスは単数?複数?


 たとえば、セッションIDをファイル名にしたファイルを作成し、それへのリンクをページに貼り付けて、クライアントにPDFファイルをダウンロードさせるというのはどうでしょう?もちろん、セッションが切れるときにファイルを削除することを忘れてはいけません。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-03-29 09:29
すいません、返信を忘れていました。

>ところでコマンドラインの引数とはこの値ですかね?

矢印がずれて見えますが、おそらくそれです。
exeのファイル名の後に-rなどのオプションやファイル名などを渡しますよね、あれです。
ダンクーガ
常連さん
会議室デビュー日: 2003/03/14
投稿数: 48
お住まい・勤務地: 千葉県
投稿日時: 2004-03-30 15:47
Jittaさんレスありがとうございます。
引用:

Jittaさんの書き込み (2004-03-29 09:26) より:
 どれくらいのアクセスが見込まれるのでしょう?また、Winアプリのインスタンスは単数?複数?



アクセスは現状20クライアント程度、Win.exeのインスタンスは複数です。

引用:

 たとえば、セッションIDをファイル名にしたファイルを作成し、それへのリンクをページに貼り付けて、クライアントにPDFファイルをダウンロードさせるというのはどうでしょう?もちろん、セッションが切れるときにファイルを削除することを忘れてはいけません。


おおっ、なるほどセッションIDをファイル名にしたファイルを作成して切り分けるのは使えそうですね。

とりあえずセッションIDをファイル名にしてサーバーの指定フォルダに作成、引数をCSVにしたものをデータとしてファイルの中身を作り、Win.exeでArrayにファイルデータを格納してデータを抽出、処理が終わった時点でファイル削除といった方向でやってみましたが、ほぼ問題ないです。

一郎さん、Jittaさんどうもありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)