Мне нужна помощь с кодом ниже. Я пытаюсь преобразовать файл AutoCAD из формата dwg в формат dwf. Затем файл dwf загружается и открывается на клиентском компьютере с помощью java-апплета.ASP.NET: Выполнение внешнего исполняемого файла не работает
Команда, используемая для преобразования файлов DWG в командной строке является: C: \ Inetpub \ Wwwroot \ COR-Basic \ cadviewer \ конвертер \ ax2008.exe -i = "C: \ Inetpub \ Wwwroot \ тест \ контейнер \ DU38_EG00_070116.dwg»-o = "C: \ Inetpub \ Wwwroot \ COR-Basic \ cadviewer \ файлы \ DU38_EG00_070116.dwf" -f = DWF -модели -text
это работает, когда я ввожу текст команды в cmd.exe.
Но когда я называю это из моего приложения ASP.NET, это начинается только процесс, но процесс никогда не заканчивается ...
Я пытался добавить дополнительный пользователь, дали это разрешения пользователя полное, и полные разрешения на wwwroot, но он все равно не работает.
Кто-нибудь знает, что я делаю неправильно, или как я могу это сделать по-другому?
If System.IO.File.Exists(strDWGlocation) Then
Dim psiProcessSettings As Diagnostics.ProcessStartInfo = New Diagnostics.ProcessStartInfo
psiProcessSettings.FileName = strApplicationPath
psiProcessSettings.Arguments = " -i=""" & strDWGlocation & """ -o=""" & strOutputLocation & """ -f=dwf -model -text"
'ST-LAPTOP\converter
psiProcessSettings.UserName = "converter"
psiProcessSettings.Password = secureString
'StefanSteiger.Debug.MsgBox("Input location:" + strDWGlocation)
'StefanSteiger.Debug.MsgBox("Output location:" + strOutputLocation)
Response.Write("<h1>Argument1: " + psiProcessSettings.Arguments + "</h1>")
Response.Write("<h1>Pfad1: " + psiProcessSettings.FileName + "</h1>")
'psiProcessSettings.RedirectStandardInput = True
psiProcessSettings.RedirectStandardError = True
psiProcessSettings.RedirectStandardOutput = True 'Redirect output so we can read it.
psiProcessSettings.UseShellExecute = False 'To redirect, we must not use shell execute.
'psiProcessSettings.CreateNoWindow = True ' don't create a window
Dim pConverterProcess As Diagnostics.Process = New Diagnostics.Process
pConverterProcess = Diagnostics.Process.Start(psiProcessSettings) 'Create the process.
pConverterProcess.Start() 'Execute the process.
'Response.Write("<h1>" + Replace(pConverterProcess.StandardOutput.ReadToEnd(), vbCrLf, "<BR />") + "</h1>") 'Send whatever was returned through the output to the client.
'pConverterProcess.CancelOutputRead()
'pConverterProcess.CancelErrorRead()
'pConverterProcess.StandardInput.Close()
'Wait for the process to end.
'pConverterProcess.WaitForExit()
pConverterProcess.Close()
'Dim iExitCode As Integer = pConverterProcess.ExitCode()
pConverterProcess.Dispose()
Else
MyNamespace.Debug.MsgBox("No such file.")
End If
Об этом следует спросить у создателей ax2008. В частности, отображает ли приложение какой-либо пользовательский интерфейс при его запуске? –
Нет, это не утилита командной строки. И он не запрашивает ввод, вы просто указываете параметры командной строки и нажимаете enter. –
nice Q ............. –