Запуск процесса из веб-приложения - PullRequest
0 голосов
/ 12 декабря 2008

Я на самом деле пытаюсь запустить процесс для winzip и заархивировать папку. Это я делаю, используя приведенный ниже код в 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, она прекрасно работает и в веб-приложении ...

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

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

Ответы [ 2 ]

1 голос
/ 13 декабря 2008

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

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

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

0 голосов
/ 12 декабря 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...