Я действительно пытаюсь запустить процесс для 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 .... Но на очень немногих машинах это работает нормально. В большинстве машин я сталкиваюсь с проблемой, а также могу последовательно воспроизводить проблему ...
Но то же самое, если я попробую использовать 7z zip, он отлично работает с самим веб-приложением ...
Есть ли обходной путь для этого процесса?





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