2008-12-12 2 views
0

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

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

Благодаря Винод Т.

ответ

1

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

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

Я только что проверил и там, кажется, ограниченная поддержка почтового индекса в System.IO.Compression. Но согласно this discussion, это может быть не то, что вам нужно. Однако в этой дискуссии упоминается статья под названием «Decompress Zip files with Windows Shell API and C#».

+0

это настоящее в каркасе 1.14? – Vinodtiru 2008-12-15 04:49:36

0

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

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