Запуск процесса из веб-приложения

Я на самом деле пытаюсь запустить процесс для WinZip и ZIP-папку. Это я делаю, используя приведенный ниже код в VB.

Dim startInfo As New System.Diagnostics.ProcessStartInfo
Dim pStart As New System.Diagnostics.Process
Dim tempFileName As String
Try
    startInfo = New System.Diagnostics.ProcessStartInfo( _
    "c:\Program Files\WinZip\WINZIP32.EXE")
    startInfo.Arguments = " -a -r ""c:\test.zip"" c:\test"
    startInfo.UseShellExecute = False
    startInfo.WindowStyle = Diagnostics.ProcessWindowStyle.Normal

    pStart.StartInfo = startInfo
    'startInfo.WorkingDirectory = "c:\Program Files\WinZip"
    'startInfo.FileName = "WINZIP32.EXE"
    pStart.Start()
    pStart.WaitForExit()

Catch ex As Exception
    Throw
End Try

Это прекрасно работает, когда его помещают в событие нажатия кнопки приложения Windows. Но когда то же самое делается в событии нажатия кнопки веб-приложения, я вижу, что процесс запускается в диспетчере задач машины. Но он не заархивирует и не закрывает приложение, и не выдает его winzip ui .... Но на очень немногих машинах это работает нормально. На большей части машины я сталкиваюсь с проблемой, а также могу последовательно воспроизвести проблему ...

Но похожая вещь, если я пытаюсь использовать 7z zip, он отлично работает и сам в веб-приложении ...

Пожалуйста, дайте мне знать, если есть какое-либо решение или обходной путь для этого ...

Спасибо Винод Т.

12.12.2008 13:49:29
2 ОТВЕТА
РЕШЕНИЕ

Я считаю, что .Net Framework имеет встроенные возможности zip. Я бы попробовал использовать их в первую очередь. Вероятно, ваша zip-программа не работает из-за разрешений на веб-сервере.

редактировать

Я только что проверил, и в System.IO.Compression кажется, что поддержка zip ограничена. Но согласно этой дискуссии , это может быть не то, что вам нужно. Однако в этом обсуждении упоминается статья под названием « Распаковка Zip-файлов с помощью Windows Shell API и C # ».

1
12.12.2008 22:17:23

Это может быть связано с пользователем, под которым работает IIS; попробуйте изменить пул приложений для запуска в вашей личности, чтобы увидеть, работает ли он. Конечно, winzip - это инструмент для пользовательского интерфейса - вам лучше использовать утилиту командной строки zip ... pkzip ;-p

Лично я бы посмотрел на использование #ZipLib вместо этого - это позволит вам манипулировать zip-файлами в управляемом коде.

0
12.12.2008 13:52:37