をプロセスを作成できません、私は次のように動作され、すでに存在している古いプロセスを更新しています:は、ASPサイトからCOMオブジェクトに
ユーザーが次のASP(簡略化され、変更の名前を走るフォームを送信します):
<%
set rb = Server.CreateObject("RecordBuilder.SomeObject")
rb.Calculate()
rb.StartProcess()
%>
がRecordBuilder.SomeObject
私はVB6を持っていないので、私は予想通りCalculate()
作品にVB.NeT 4.0
への呼び出しを、それを変換し、古いVB6 DLLた、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
これは私が期待通りに動作します.vbs
ファイルにテストASPをコピーがあれば、proc.Start()
への呼び出しで失敗します。
d:\App\RecordProcessor.exe
のアクセス許可を、グループEveryone
に実行許可を与えるように変更しました。
あなたはどのような例外がスローされますか? – Kev
これは機能しています。 "sn -k"の代わりにVisual Studio内からStrong Name Keyを再生成しました。さらに、RedirectStandardOutput、UseShellExecute、およびCreateNoWindowがすべて正しく設定されていない場合、ウィンドウ内でアプリケーションを実行しようとし、アクセスが拒否されて失敗します。 – user575846