QA@IT

Windows Server 2012上でBASP21のEXEファイルをそのまま使いたい

11978 PV

はじめまして、itaと申します。

Windows 7(32Bit)でBASP21(フリー)を使って、メールの送受信等を行なっています。
この度、マシンが Windows Server 2012 R2(以下、WS2012)になりましたが、そのままのプログラムをインストールして使いたいのですが、WS2012は64ビットの為か、うまく動作しません。

ASPならIISの設定やVBS、WSHならSysWOW64以下のcscript.exeでの起動を行うことで、そのまま活用できると他のサイトで知りました。
しかし、VBやVB.netで作ったexeファイルをWS2012で動作する方法がわかりません。
どなたか、ソースを変更することなく、BASP21を使用したexeファイルをそのままWS2012で動作させる方法を教えて下さい。
BASP21の有料版(64Bit版)を使う方法しかないのでしょうか?

回答

こんにちは、

参考になるかどうかわかりませんが・・・

例えば、アプリケーションプールの詳細設定で「32ビットアプリケーションの有効化」をTrueにしたら
使えると思うのですが・・・
この時、BASP21を使うディレクトリを決め、そのディレクトリをアプリケーションで指定し、そのアプリ
ケーションに割当てるアプリケーションプールのみを「32ビットアプリケーションの有効化」にする事で
64ビットと32ビットとを動かす事ができると思います。

<例>

アプリケーションプール
 Web64  32ビットアプリケーションの有効化:False
 Web32  32ビットアプリケーションの有効化:True
サイト
 Root
   +-AAA      割当てアプリケーションプール:Web64
   |  +-AA2
   +-BBB      割当てアプリケーションプール:Web32
      +-BB2

※ BBBとBB2は32ビット(WOW64)で動きます。

以上です。

編集 履歴 (0)

こんにちは、

参考になればよいのですが、
basp21p.dllとbftp.dll、bsocket.dllをregsvr32で32ビット版DLLとしてして登録している
環境下であれば、EXE作成時にEXEのプラットフォームをAnyCPUではなくx86にしてあげれば
EXEは32ビット版になりますので、64ビット環境下であればWOW32で動くようになります。
WOW32で動く場合、32ビット版DLLを使用するためbasp21も使われると思います。

以上です。

編集 履歴 (0)
  • 補足ですが、regsvr32もc:\windows\syswow64のregsvr32を使って登録する必要がありますね(質問者の「プログラムをインストール」がどういうものかわからないので登録しなおす必要があるかもしれないという意味で)。 -

後学のために教えていただきたく。

私の環境は、
Win2008 64bit Basp21(free)
上記環境で、動作しております。(XXX.exeファイルをタスクマネージャから起動)

WS2012は64ビットの為か、うまく動作しません。

どんな感じで、うまく動作しないのでしょうか? エラー等でていますか?

編集 履歴 (0)
  • なるほど。エラーの内容は同じかどうかわかりませんが、
    COMExceptionが発生する場合があるんですね。

    プロジェクトの対象CPUを x86/AnyCPU で Exeを作成しなおすことで問題が回避されますね。

    勉強なりました。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。