2015-09-24 2 views
-1

Хотите выполнить exe в каталоге приложения, в системе Dev он отлично работает. В IIS, это не выполняется, я попытался ниже пунктов:Начало процесса в IIS

набора приложений по умолчанию пула локальной системы

набор defualtpool, NETWORK_SERVICE, доступ каждого к EXE

Включено 32 бит приложение для пула приложений

Server Version: Windows Server 2012

IIS версии: IIS 8.0

Ниже мой код

p.StartInfo = new ProcessStartInfo(); 

p.StartInfo.UseShellExecute = false; 

p.StartInfo.RedirectStandardOutput = true; 

p.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "wkhtmltopdf\\wkhtmltopdf.exe";  

string arg1 = ""; 

arg1 = "www.google.com" + " test.pdf"; 

p.StartInfo.Arguments = arg1; 

p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 

p.StartInfo.CreateNoWindow = true; 

p.Start();   

p.WaitForExit(60000); 

p.Close(); 

p.Dispose(); 
+0

process.start не показывает интерактивное окно, это то, что вы ожидаете увидеть? – harishr

+0

Есть ли у вас какие-либо ошибки или журналы? –

ответ

0

Убедитесь, что место, в котором ваш файл PDF становится генерироваться «каждый человек имеет доступ к нему»

кажется вы пытаетесь преобразовать данные html в pdf-файл на вашем сервере iis. Убедитесь, что сервер IIS может получить доступ к сайту, который вы пытаетесь преобразовать. «Проверьте, можете ли вы получить доступ к этим сайтам с помощью IE на своем сервере IIS, поскольку могут возникнуть проблемы с прокси».

+0

Каждому доступу предоставляется указанная папка – Bala

+0

Непосредственно проверяется на сервере, только одна проблема – Bala

0

Считайте, чтобы установить рабочий путь вашего exe:

p.StartInfo.WorkingDirectory = System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "wkhtmltopdf"; 

Также проверьте диспетчер задач, если exe находится в памяти. Иногда, когда пакет получил ошибку низкого уровня, откройте приглашение, и IIS не запишут его, поэтому процесс замораживается в памяти.

Рассмотрите также набор журнала в exe, чтобы понять, что происходит не так.

У меня была аналогичная проблема. Решено переместить exe в другую папку за пределами приложения IIS. Эта папка должна иметь права выполнения.

+0

Пробовал перемещение exe за пределы приложения IIS, все еще не работает. Even Process.Start ("notepad.exe"); не работает в IIS – Bala

+0

Имеет ли ваш exe пользовательский интерфейс? или это просто партия? Блокнот имеет интерфейс, в котором взаимодействует пользователь. Вы не можете работать в iis. В IIS вы можете запустить exe, который делает что-то, чем останавливается. Партия без каких-либо gui. Я предлагаю вам создать простой exe, похожий на «мир привет», который, например, записывает в файл, затем останавливается. Поэтому вы можете понять эту проблему. Но у этого exe не должно быть gui. –

 Смежные вопросы

  • Нет связанных вопросов^_^