Я обновляю старый процесс, который уже существует, который работает следующим образом:
Пользователь отправляет форму, которая запускает следующую asp (упрощенно, имена изменены):
<%
set rb = Server.CreateObject("RecordBuilder.SomeObject")
rb.Calculate()
rb.StartProcess()
%>
RecordBuilder.SomeObject
был старой библиотекой VB6, у меня нет VB6, поэтому я преобразовал ее в VB.NeT 4.0
Звонок на Calculate()
работает как положено, сбой на StartProcess()
.
StartProcess()
является следующим:
Public Function StartProcess()
Try
strProcess = "Starting process"
Dim proc = New Process()
proc.StartInfo.RedirectStandardOutput = True
proc.StartInfo.UseShellExecute = False
proc.StartInfo.CreateNoWindow = True
proc.StartInfo.FileName = "d:\App\RecordProcessor.exe"
Dim procHandle = proc.Start()
strProcess = "Started process"
Catch ex As Exception
Err.Raise(vbObjectError + 9999, "RecordBuilder.SomeObject", strProcess & " failed: " & ex.Message & "<hr />Stack Trace:<br />" & ex.StackTrace)
End Try
End Function
Это невозможно при вызове proc.Start()
, однако, если я скопирую тестовый ASP в файл .vbs
, он будет работать как положено.
Я изменил разрешения на d:\App\RecordProcessor.exe
, чтобы предоставить разрешение на выполнение группе Everyone
.