.net 从Web应用程序启动进程

.net 从Web应用程序启动进程,.net,asp.net,javascript,vb.net,zip,.net,Asp.net,Javascript,Vb.net,Zip,实际上,我正在尝试启动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:\Pr

实际上,我正在尝试启动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应用程序的按钮单击事件中时,效果很好。但是,当在web应用程序的按钮单击事件中执行相同操作时,我可以看到该过程在机器的任务管理器中启动。但它不会压缩,也不会关闭应用程序,也不会弹出winzip ui。。。。但在很少的机器上,这确实可以正常工作。在大多数机器中,我都面临着问题,也能够始终如一地重现问题

但如果我尝试使用7ZIP做类似的事情,它在web应用程序本身中也能很好地工作


此过程是否有解决方法?

这可能与运行IIS的用户有关;尝试将应用程序池更改为以您的身份运行,以查看其是否有效。当然,winzip是一个UI工具-使用命令行zip实用程序可能会做得更好。。。pkzip-p


就我个人而言,我会转而考虑使用-这将允许您在托管代码中操作zip文件。

我相信.Net framework具有内置的zip功能。我会先尝试使用这些。由于web服务器上的权限,您的zip程序可能未运行

编辑

我刚检查过,System.IO.Compression中的zip支持似乎很有限。但据我所知,这可能不是你所需要的。然而,该讨论提到了一篇名为“”的文章