从Web应用程序启动进程

时间:2008-12-12 13:49:30

标签: .net asp.net javascript vb.net zip

我实际上是在尝试启动winzip和zip文件夹的过程。我正在使用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 ....但是在很少的机器中这确实很好用。在大多数机器中,我遇到了问题,并且能够始终如一地重现问题......

但是类似的事情,如果我尝试使用7z zip,它确实可以很好地形成一个Web应用程序本身......

如果有任何解决方案或解决方法,请告诉我......

由于 Vinod T。

2 个答案:

答案 0 :(得分:1)

我相信.Net框架内置了zip功能。我会尝试先使用它们。由于Web服务器上的权限,您的zip程序可能未运行。

修改

我刚检查过,System.IO.Compression中的zip支持似乎有限。但根据this discussion,它可能不是你需要的。然而,该讨论提到了一篇名为“Decompress Zip files with Windows Shell API and C#”的文章。

答案 1 :(得分:0)

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

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