質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

3660閲覧

ASP.NET + WindowsServer 2012R2(IIS8.5) でWebサーバ上のexeファイルを実行できない

capoco

総合スコア7

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2017/11/09 10:16

動作環境

WebサーバOS: Windows Server 2012 R2
Webサーバ: IIS8.5
使用言語: C#(ASP.NET)
使用ブラウザ: IE(基本的に11)(IE以外は未サポート)

上記組み合わせにて、社内向けのWebサイトを構築しております。

躓いている点

クライアント端末からブラウザでWebサイトにアクセスを行い、
特定のボタンを押下した際にWebサーバ上に配置しているexeを実行したいのですが、
どうやら実行ができていないみたいです。
(exe自体は引数に貰ったフォルダにCSVファイルを吐くような、すごく簡単なものです。)

別環境にて

WebサーバのOSがWindows Server 2008R2や、開発端末(Windows 7)であれば
正常に動作しており、IIS8.5(Windows Server 2012 R2)の問題と疑っております。

実装コード(該当部分のみ抜粋)

C#

1ProcessStartInfo pInfo = new ProcessStartInfo(); 2pInfo.FileName = module; 3pInfo.WorkingDirectory = di.FullName; 4pInfo.UseShellExecute = false; 5pInfo.RedirectStandardOutput = false; 6pInfo.RedirectStandardInput = false; 7pInfo.CreateNoWindow = true; 8pInfo.Arguments = args; 9 10using (Process p = Process.Start(pInfo)) 11{ 12 p.WaitForExit(Timeout); 13 14 if (!p.HasExited) 15 { 16 p.Kill(); 17 return false; 18 } 19}

その他試したこと

ProcessStartInfoのFileNameにcmd.exe(Environment.GetEnvironmentVariable("ComSpec"))を設定し、
引数に"/c"から始めて実行モジュールを指定したりしましたが、動作しませんでした。
モジュール自体を実行直後にCドライブ直下にログファイルを出力するように作成しましたが、
ログファイルが出力されないため、そもそも叩けていないと考えております。
また、アクセス権等はEveryoneにフルコンを付与しており、念の為Network Service(IIS実行ユーザ)にもフルコン等を付与しておりますが、
変わりはありませんでした。

但し、cmd.exeを指定し、Argumentsに"/c echo "a" > a.txt"のように記載をすると、
作業フォルダ直下にa.txtが出力されました。

五月雨となり申し訳ございませんが、必要な情報がありましたらご提供致しますので、
お知恵をお貸しいただければと存じます。

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/11/10 02:56

通常 IIS ではワーカープロセスはユーザー対話モードで実行されないのですが、その問題ということはないということは切り分けられているのでしょうか? その他、その exe を動かすアカウントにユーザープロファイルが必要とか・・・ IIS7.5 では問題なかったとのことですが、全く同じ条件で動かしているのでしょうか(IIS7.5 のワーカープロセスのアカウントの設定を exe が動くように変えているとかいうことはないですか)?
guest

回答1

0

自己解決

SurferOnWww 様
ご回答ありがとうございます。
頂きました情報から、exeを作成した担当に質問したところ、
ユーザプロファイルの読み込みが必要でした。
ただcsvを出力するだけのプログラムだったので、プロファイルの読み込みが必要な処理など行っているわけ無いと、
決めつけておりました…。

上記、お騒がせし申し訳ございません。
ご回答ありがとうございました。

投稿2017/11/10 04:02

capoco

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問