- - PR -
IIS+basp21で外部EXE及びDLLの実行のための設定
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-11-25 05:28
IISと.NET Frameworkで苦戦しています。
似たような事例をいくつか確認し、一通り試したのですが結果が出 ないためあえてスレッドを立てさせていただきました。 実現したいことは
現在既に下記のような形式の仕組みが出来上がりつつあります。
exeはコンソールアプリケーションで作成したので、コマンドライン での動作確認は出来ていて、問題ありません。 aspxからexeを実行するためのbasp21の設定についても、 http://www.bea.hi-ho.ne.jp/cgi-bin/user/byoko/bnews?f=b&p=31680 を確認し tlbimp C:\WINNT\system32\basp21.tlb /out:basp21Lib.dll で作成したdllを <IIS_ROOT>\bin\ に配置し、sample1.aspxで、受け取ったパラメタをそのまま 標準出力するプログラムの動作確認までは行っています。 ところが、aspxから、 c:\package\bin\hogehoge.dll(既存プログラムと考えてください) を呼び出すexeファイル(binディレクトリに配置)を実行しても結果を 得ることが出来ません。 調べてみたところ、IIS_ROOT配下(binディレクトリ)に既存プログラム が存在していないためのようです。 実行しようとしているdllは並列階層の他のディレクトリのiniファ イルを参照しており、既存プログラムのbinディレクトリをIIS_ROOT 配下にコピーしてきても正常に動作させることが出来ません。 ここから先、色々調べてみたのですが何をどのような手順で設定す れば良いのか、理解できず試行錯誤しています。 gacへの登録、alでのアセンブリの作成等試みてみたのですが、dllの 構成の問題なのかどちらもエラーとなり、作業が出来ません。 gacutilの実行エラーは 「アセンブリではありません」 なら、アセンブリを作成しようとすると alの実行結果は 「インポート中にエラーが発生しました--エラーを特定できません」 手順が悪いのか、そもそも出来ない(ことはないと思いますが)こと をやろうとしているのかの判断も出来ていない状況です。 どうか、ご教授下さい。 よろしくお願いします。 sample1.aspx(サンプル) <%@ Import namespace="basp21lib" %> <%@ Assembly name="basp21lib" %> <script language="vb" runat="server" Debug="true"> Sub Page_Load(sender as Object, e as EventArgs) Dim dObj, dRet, rtn_param Dim basp as Basp21 = new Basp21() Dim ExecParm, Parm1, Parm2 Parm1 = """-1""" Parm2 = """7777""" ExecParm = "c:\app\www\bin\c3.exe" ExecParm = ExecParm & " " & Parm1 ExecParm = ExecParm & " " & Parm2 dRet = basp.Execute(ExecParm,1,rtn_param) Response.Write("結果 リターンコード=" & dRet & "<BR>") Response.Write("結果 出力結果=" & rtn_param & "<BR>") End Sub </script> ※追記 呼び出すDLLに対してのIUSR_xxxの実行/参照権限は設定済み。 既存プログラムを<WEB_ROOT>\bin配下にコピーしてみたが、別階層 (上位階層)のiniファイル等を参照しており、その参照に失敗するた め、現在のインストールディレクトリのまま機能の実現をしなければ いけない。 [ メッセージ編集済み 編集者: JIMMY 編集日時 2004-11-25 05:30 ] [ メッセージ編集済み 編集者: JIMMY 編集日時 2004-11-25 10:51 ] [ メッセージ編集済み 編集者: JIMMY 編集日時 2004-11-25 12:08 ] | ||||
|
投稿日時: 2004-11-25 17:21
Processクラスではなく、basp21を使うのには何か理由があるのでしょうか?
| ||||
|
投稿日時: 2004-11-25 18:43
申し訳もないのですが、Processクラスのことは知りませんでした。 周りでbasp21を使っている事が多い、あとsmtpなんかも実装している ので容易に使えることから選択していました。 .NETというかWindowsでの開発に関わって1ヶ月でまだまだ勉強不足 のため、くだらない事を質問してしまったようです。 Processクラスについて調べてみて、勉強してみます。 ありがとうございました。 |
1