新しいWindowsはほとんど64bitだから32bit時代のISAPI向けDLLをIISで動かそうというときはアプリケーションプールの詳細設定で32bit対応をtrueにしないといけないよ!
という話。
Windows Server 2003の緊急リプレースに呼ばれ、当然OSだけじゃなくて乗っているソフトウェアも移行せねばならず、とっくに各種ソフトのサポートも切れており、しかもカスタムされたソフトウェアなのでメンテナンス向けマニュアル類が貧弱な環境。とりあえず元サーバーのファイル構成から見よう見まねで組み上がり…ました!
が、IISの部分だけどうしても動かない。
dllをISAPIでハンドリングさせてやれば良いはずなのだが…
最初は403エラー、権限の設定で実行が入っていないためだとわかったが、実行に入れてやると500エラー。しかもdll本来のエラーメッセージではないのでIISからISAPIでハンドリングする部分がおかしいようだ。ここでハマり。
アプリケーションプールを.NET 2.0で作成、その後IIS管理ツールの右側にある「詳細設定」から「32 ビットアプリケーションの有効化」をtrueに…
あっさり動いた。こんな項目があること自体が頭から抜けてたわ…
ということで、業務系システムはメンテナンスできるところを確保しながら延命するか、延命できないなら次のシステムに乗り換えるか考えないといけません。元の開発会社だって当時のメンバーがもういないので無理ですってパターンもありますからね。
大手企業だったらそのへん大丈夫でしょうけど、中小企業はどうしたってカスタマイズから頼むとなると中小ベンダや個人事業主に頼らざるを得ない。
伝説の「小川マシンエレクトロ」さんじゃないですが、いざというときの選択肢として、ソフトウェア会社以外の、横断的知識を持った、ハッカー的な人材、能力者がほしいですね…
いや、ウチに頼んでくれてもいいんですけども。