2016-04-13 7 views
1

У меня возникла проблема с запуском wkhtmltopdf.exe из моего веб-приложения, деполированного на Windows Server 2012. Похоже, что у моего пула приложений нет разрешений для выполнения этого действия, хотя веб-приложение или exe не вызывают никаких ошибок. Он просто не выполняет.Выполнение * .exe из .net веб-приложения в Windows Server 2012 R2

Что я сделал до сих пор:

  • предоставить полный доступ к пулу приложений для EXE и все каталоги, связанных с ним из свойств -> Безопасность
  • Пробовал использовать другие идентификаторы в пуле приложений, кроме приложения удостоверение пула
  • Пытался выполнить это с помощью WCF и службы Windows
  • Установить все файлы, папки в рабочем каталоге не только для чтения
  • Set ехе для запуска в качестве administr ator

Я использовал procexp, чтобы увидеть, выполняется ли exe, но его отсутствие - нет процесса wkhtmltopdf.exe. Мне не нужно показывать пользовательский интерфейс, мне просто нужно запустить его на фоновом режиме и позволить ему выполнять свою работу - генерировать pdf-файл из html.

Когда я запускаю этот exe вручную из командной строки, он работает нормально. Я также развернул мое веб-приложение на другой сервер r2 win 2012, создал новый пул приложений с настройками по умолчанию и индексом пула приложений, установил разрешения для файлов/папок и exe. Удивительно, что он работал там.

Так что я думаю, что им что-то не хватает, но я не могу понять это. Я тонкий, что у первого сервера есть какая-то специальная конфигурация на ASPUSER или IIS или разрешения администратора или что-то в этом роде.

Кто-нибудь знает, как определить, имеет ли пул приложений * .exe выполнение разрешений для своих пользователей? Или, может быть, эта проблема знакома кому-то? Возможно ли явное указание IIS или пула приложений НЕ запускать exe?

ответ

0

Предполагая, что вы используете C# или VB.NET: См: How to use wkhtmltopdf.exe in ASP.net

Вы можете использовать DLL .NET обертку, которая по моему мнению, чистое решение, то выполнение исполняемых файлов из C# или VB.NET. Это также позволяет вам отлаживать вызовы.

+1

Внешние обертки не помогают мне в данный момент. Упаковщики в конечном итоге будут то же, что и я, - вызовите Process.Start на wkhtmltopdf.exe. Я в основном писал свою собственную обертку. – Marek

+0

Это оболочка вокруг DLL, а не исполняемый файл. Поэтому он не вызывает Process.Start для wkhtmltopdf.exe –