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

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

Есть ли обходной путь для этого процесса?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
555
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

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

Ответ принят как подходящий

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

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

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

Другие вопросы по теме