第三者サイトからダウンロードした.xls
ファイルを読み込もうとしています。毎日ファイルを処理しないので、ファイルをアップロードする前にフォーマットを.xlsx
に変更することはできません。私はIIS7
でvb.net
サイトを使用しています Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).
CLSID {00024500-0000-0000-C000-000000000046}のコンポーネントのCOMクラスファクトリを取得できませんでした
:
私は、次のエラーを得続けます。 アプリケーションプールはユーザーと一緒にログインし、ユーザーはサーバー上の管理者で、すべてにアクセスできます。
私は次のことを行っている:
- 事務所は、私が
DCOMCNFG
に入ったとLaunch and Activation Permissions
、Access Permissions
とConfiguration Permissions
は私のログインアカウントとの完全な制御を持っていることを確認してきたホストマシン - にインストールされています。
- サーバーにはx64アーキテクチャがあり、Office x64もインストールされています
C:\Windows\SysWOW64\config\systemprofile\Desktop
とC:\Windows\SysWOW64\config\systemprofile\Desktop
というフォルダが存在することを確認しました。- 私は
C:\Windows\SysWOW64\config\systemprofile\Desktop
がx86アーキテクチャ用だと知っていますが、システムがそれを使いたがっているかどうかを確かめました。
これは私のコードは次のようになります。
Imports genlib
Imports Excel = Microsoft.Office.Interop.Excel
Partial Class HeadOffice_OpperationalParameters_FailedBranches
Inherits System.Web.UI.Page
Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try
End Sub
Protected Sub btnRunReport_Click(sender As Object, e As EventArgs) Handles btnRunReport.Click
If fuReport.HasFile = False Then
ClientScript.RegisterClientScriptBlock(Me.GetType, "", "alert('Upload a file to process.');", True)
Exit Sub
End If
Dim ReportFileName As String = Server.MapPath("~") & "FilesUploaded\" & fuReport.FileName.Replace(".XLS", "_" & Today.ToString("yyyy.MM.dd") & "_" & TimeOfDay.ToString("HH.mm.ss") & ".xls")
fuReport.SaveAs(ReportFileName)
Dim xlApp As Excel.Application 'Here
Dim xlWorkbook As Excel.Workbook
Dim xlWorksheet As Excel.Worksheet
Try
'=================================================
' ERROR OCCURS ON NEXT LINE
'=================================================
xlApp = New Excel.ApplicationClass
xlWorkbook = xlApp.Workbooks.Open(ReportFileName)
xlWorksheet = xlWorkbook.Worksheets("RptTransactionDetail")
BrowserWrite(xlWorksheet.Cells(2, 2).value, True)
xlWorkbook.Close()
xlApp.Quit()
Catch ex As Exception
ClientScript.RegisterClientScriptBlock(Me.GetType, "", "alert('" & ex.Message.Replace("'", "\'").Replace(vbCr, "\r").Replace(vbLf, "\n") & "');", True)
Exit Sub
End Try
releaseObject(xlApp)
releaseObject(xlWorkbook)
releaseObject(xlWorksheet)
End Sub
End Class
誰がどのようにこのエラーを解決するには、または問題を識別するために取るべき手順を教えてもらえますか?
私はスタックのオーバーフローに関する記事のほとんどを読みましたが、私が見た答えを追加するには余りにも多くあります。
エラーは何行発生しますか? – dbasnett
@dbasnett on line 33:xlApp =新しいExcel.ApplicationClass –
xlApp = New Excelを試しましたか?アプリケーション – dbasnett