J
Jesse Cates via DotNetMonster.com
I am trying to launch a command-line program that came with a program called Live Stats. This command-line program is used to automate configuration of Live Stats. In order to test this, I am just calling the program with no arguments, which just returns some "how to use" text, and requires no user input. The problem is that once I do a .start on the process, the program just hangs indefinitely. I can see it running in the process list on the server, using 0% CPU, but it never goes away. When I tried it with the arguments to actually change a setting, that setting never got changed. If I try doing a .StandardOutput.ReadToEnd (Or any other type of Read), or a .WaitForExit, then the ASP.NET page will hang as well. I took the exact same code I'm using in the ASP.NET page, and put it into a standard windows VB.NET app. I ran that app on the server, and it worked with no problems at all. In addition, using the same code in the ASP.NET page with a different app works just fine, so I know that it has something to do with the program I'm trying to run, but can't figure out what exactly it is. If anyone is willing to help me with this, I will gladly send you the program (It's only a 300kb single-file executable), to see if you're able to help. And, here is the code that I'm using (VB):
Dim siStartInfo As New ProcessStartInfo("ls6remote.exe")
Dim pLSRemote As New Process
Dim strReturn as String
'Initialize Process properties
siStartInfo.UseShellExecute = False
siStartInfo.CreateNoWindow = True
siStartInfo.RedirectStandardOutput = True
pLSRemote = Process.Start(siStartInfo)
strReturn = pLSRemote.StandardOutput.ReadToEnd
Response.Write(strReturn)
pLSRemote.Close()
Dim siStartInfo As New ProcessStartInfo("ls6remote.exe")
Dim pLSRemote As New Process
Dim strReturn as String
'Initialize Process properties
siStartInfo.UseShellExecute = False
siStartInfo.CreateNoWindow = True
siStartInfo.RedirectStandardOutput = True
pLSRemote = Process.Start(siStartInfo)
strReturn = pLSRemote.StandardOutput.ReadToEnd
Response.Write(strReturn)
pLSRemote.Close()