2016-04-04 3 views
0

Im, принимающий приложение asp.net в IIS8 на сервере Windows 2012. это приложение предполагает выполнение командного файла.IIS 8 (сервер Windows 2012) не может запускать командный файл

он отлично работает, если я выполняю приложение с визуальной студией в режиме отладки. но когда я загружаю его в IIS, приложение can not может выполнить пакетный файл.

Я попытался изменить командный файл с файлом exe. та же проблема.

пакетный файл, предполагают, чтобы выполнить из приложения (приложения WCF), что в IIS:

System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
       proc.StartInfo.WorkingDirectory = @"C:\path"; 
       proc.StartInfo.FileName = @"C:\path\executer.bat"; 
       proc.Start(); 
       proc.Close(); 

пожалуйста, помогите,

+0

Необходимо точно указать, как именно этот пакетный файл должен быть выполнен. Вызывается ли она с страницы ASP.NET? Является ли это частью, возможно, веб-службы? Здесь просто недостаточно, чтобы позволить нам оказать большую помощь. –

+0

Я добавил более подробную информацию. –

+1

Если вы уверены, что командный файл не запускается, тогда я бы поставил блоки try-catch вокруг кода, который его запускает, и попытайтесь получить определенную информацию о регистрации. На сервере вы, скорее всего, имеете дело с проблемами разрешений, в которых контекст учетной записи, на котором запущен сайт, не имеет доступа к пути хоста пакетного файла. –

ответ

0

Скорее всего, проблема, которую вы испытываете в связи с разрешениями. Вам нужно проверить, для какой учетной записи используется пул приложений IIS, в котором работает приложение, и имеет ли эта учетная запись права на запуск командного файла или команд в этом пакетном файле.

При работе в Visual Studio вы, скорее всего, используете IIS Express в качестве интерактивного пользователя.

При работе в IIS по умолчанию вы используете под кодом ApplicationPoolUser, который не имеет права выполнять код, не имеет доступа к файлу или чего-либо еще. Если вы явно не установили другую учетную запись с соответствующими правами доступа к файлу в пакетный файл и права на выполнение команд внутри командного файла, вы не сможете запустить пакетный файл из IIS. Чтобы изменить это, измените пользовательский идентификатор пула приложений на пользователя, который имеет права на чтение и выполнение пакетного файла на диске и имеет все права, необходимые для запуска того, что выполняется в пакетном файле.

-1

Ваш код работает нормально. Может быть, есть некоторая проблема в пакетном файле я столкнулся, прежде чем .my пакетного файла

start "" BATCHLOG.exe 

где BATCHLOG.exe является исполняемому

Несколько раз пакетник Названный только

BATCHLOG.exe

не работает корректно на планировщике окон, поэтому может быть в вашем случае

0

Убедитесь, что в любой папке или файле, доступном вашему приложению, есть разрешения, предоставленные учетной записи AppPoolUser. Также важно также проверить свои папки ресурсов приложений. Например, если вы пишете журналы, убедитесь, что вы предоставили учетной записи пользователя appPool достаточное разрешение для записи в этот файл.

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