![](/img/trans.png)
[英]Cannot create COM object from ASP.NET (Creating an instance of the COM component with CLSID {} from the IClassFactory failed… error: 8007000e)
[英]Cannot create a process in a COM object from an asp site
我正在更新一個已經存在的舊進程,其工作方式如下:
用戶提交運行以下asp的表單(簡化,名稱更改):
<%
set rb = Server.CreateObject("RecordBuilder.SomeObject")
rb.Calculate()
rb.StartProcess()
%>
RecordBuilder.SomeObject
是一個舊的VB6 DLL,我沒有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
。
檢查網站的匿名用戶帳戶是否對d:\\app
文件夾及其可能接觸的任何其他文件夾具有必需的權限。
我注意到缺少的一件事是proc.WaitForExit()
之后的proc.Start()
。
您可能希望這樣做,因此也可以從流程本身捕獲錯誤:
Dim stdError As New String
Try
strProcess = "Starting process"
Dim proc = New Process()
proc.StartInfo.RedirectStandardOutput = True
proc.StartInfo.RedirectStandardError = True
proc.StartInfo.UseShellExecute = False
proc.StartInfo.CreateNoWindow = True
proc.StartInfo.FileName = "d:\App\RecordProcessor.exe"
Dim procHandle = proc.Start()
strProcess = "Started process"
proc.WaitForExit()
stdError = proc.StandardError.ReadToEnd()
If stdError.Length > 0 Then
'' So long since I did VB so next line might need tweaked
Err.Raise(vbObjectError, "Caught StdError", stdError)
End If
Catch ex As Exception
Err.Raise(vbObjectError + 9999, "RecordBuilder.SomeObject", strProcess & _
" failed: " & ex.Message & "<hr />Stack Trace:<br />" & ex.StackTrace)
End Try
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.