我有一個使用32位dll的ASP.NET「網站」。當我對我們的64位服務器進行XCOPY時,使用此32位dll的頁面會引發異常。我已經爲網站運行的應用池設置了「啓用32位應用程序」爲True,但這沒有幫助。XCOPY /將ASP.NET 3.5網站以x86格式發佈到64位服務器上
我也在嘗試將目標平臺設置爲x86,但網站沒有與Web應用程序不同的選項。
這裏的堆棧跟蹤 -
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 7/13/2010 5:01:12 PM
Event time (UTC): 7/13/2010 9:01:12 PM
Event ID: 9611671ef6b845f39af6b26b89af85e3
Event sequence: 51
Event occurrence: 4
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/2/ROOT-1-129235271319338750
Trust level: Full
Application Virtual Path:/
Application Path: C:\Site\
Machine name: WWWTEST
Process information:
Process ID: 4020
Process name: w3wp.exe
Account name: IIS APPPOOL\WWWTEST AppPool
Exception information:
Exception type: COMException
Exception message: Retrieving the COM class factory for component with CLSID {58968145-CF05-4341-995F-2EE093F6ABA3} failed due to the following error: 80040154.
Request information:
Request URL: http://site/Downloads.aspx
Request path: /Downloads.aspx
User host address: 192.168.1.101
User:
Is authenticated: False
Authentication Type:
Thread account name: WWWTEST\Webtest
Thread information:
Thread ID: 4
Thread account name: WWWTEST\Webtest
Is impersonating: False
Stack trace: at Downloads.Button_Click(Object Sender, DataGridCommandEventArgs E) in C:\Site\Downloads.aspx.vb:line 1034
at System.Web.UI.WebControls.DataGrid.OnItemCommand(DataGridCommandEventArgs e)
at System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e)
at System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
at System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e)
at System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
at System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e)
at System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument)
at System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
我做了異常的網上搜索「檢索COM類工廠CLSID {58968145-CF05-4341-995F-2EE093F6ABA3}組件失敗,原因是以下錯誤:80040154.「並啓用了IIS7上的32位模式,但仍然沒有運氣。
任何幫助,非常感謝。
**答案** 我能夠在用戶Kev的幫助下解決了這個問題。這就是我所做的 -
- 下載Microsoft開發人員支持OLE文件屬性讀者2.1樣品(KB 224351)從here
- 將內容提取到使用WinZip/7-ZIP等,不要運行一個臨時文件夾建立。將文件「Interop.DSOFile.dll」和「dsofile.dll」從提取的位置複製到服務器上的應用程序的bin目錄中。
- 打開一個命令提示符具有管理員權限,並導航到bin目錄中的「REGSVR32 dsofile.dll」
- 確保應用程序池設置爲啓用32位應用程序的服務器
- 類型上。
- 重新啓動IIS
非常感謝Kev。對此,我真的非常感激。
拋出什麼異常?你能粘貼一個堆棧跟蹤嗎? – Kev 2010-07-14 01:10:30
Kev,我已經用堆棧跟蹤更新了這個問題。有任何想法嗎? – tempid 2010-07-14 13:00:47
這是第三方組件嗎?如果是這樣的話。我猜是有一個互操作程序集? – Kev 2010-07-14 14:07:40