Я пытаюсь использовать неуправляемую библиотеку ImageMagick в своем приложении ASP.NET из командной строки, используя System.Diagnostics.Process. В основном пользователи загружают файл .eps на сайт, а затем я запустим команду командной строки, чтобы преобразовать ее в .jpg. Это код, я использую, чтобы попытаться выполнить команду:Доступ запрещен при использовании System.Diagnostics.Process
Dim proc As New System.Diagnostics.Process
proc.StartInfo.RedirectStandardOutput = True
proc.StartInfo.RedirectStandardError = True
proc.StartInfo.FileName = "C:\Program Files (x86)\ImageMagick-6.6.1-Q16\convert.exe"
proc.StartInfo.UseShellExecute = False
proc.StartInfo.Arguments = String.Format("{0} {1}", Server.MapPath("~/logo/test.eps"), _
Server.MapPath("~/certificates/temp/test-1234.jpg"))
proc.StartInfo.CreateNoWindow = True
proc.Start()
Я могу запустить этот код просто отлично на нашем сервере разработки 2k3 Win, но не на нашем производстве Win 2k3 Server. Я получаю сообщение об ошибке «System.ComponentModel.Win32Exception: доступ запрещен». Главная между двумя серверами заключается в том, что производство является 64-битным и запускает Plesk для управления несколькими доменами. Я попытался добавить права пользователя asp.net в каталог ImageMagick. PS Admin говорит, что в случае Plesk это та же самая учетная запись, которую я использую для доступа к сайту в VS с использованием FPE.
Кто-нибудь знает, что я могу сделать, чтобы этот процесс мог запускаться на моем производственном сервере?
Спасибо,
Майк
Это сделало трюк, я обнаружил, что есть пользователь IWAM_plesk, который является идентификатором для домена. После того как мы добавили разрешения для этого пользователя, команда выполнится. Теперь я просто сталкиваюсь с ошибками прав доступа к файлам, которые мы пытаемся преобразовать, а также с доступом к Ghostscript, который использует IM. Я хочу, чтобы кто-то только что написал .NET-библиотеку, которая сделала то же самое: /. Спасибо, правда. – mclark1129
Это всегда боль, чтобы вызвать .exe из веб-приложения. если это не то, что вам нужно «в режиме реального времени», вы можете создать службу Windows, которая могла бы выполнить обработку для вас, у нее будет более стандартный набор разрешений, доступный для вас, и выведет вас из веб-контекста. –