webで調べたところあまり情報がなかったので記載しておきます。
前提
フレームワーク:ASP.NET (C#)
webサーバ:IIS
exeファイル:C#で作成
やりたいこと:ブラウザでボタンを押したときにサーバ側のexeファイルを起動して処理を行いたい。
問題:サーバ側でProcess.Startでexeを起動しているが起動できず、デバッグで確認すると戻り値のProcessのMainModule プロパティでWin32Exceptionが発生している。
原因
Win32Exceptionについて調べると
・32ビットアプリケーションで64ビットのexeを起動している
・exeファイルが指定のパスに存在しない
等の情報が出てきたのですが、パスは問題なく、呼び出し元もexeも64ビットなのでこれらは当てはまらず。
exeが起動できてないので、起動ユーザーの問題かと考え、IISのDefaultAppPoolのプロセスモデルのIDをLocalUserにしたら起動できました。
(NetworkService等の他のユーザーでは無理なようなです)