我有一个使用32位dll的ASP.NET“网站”。当我对我们的64位服务器进行XCOPY时,使用这个32位dll的页面会抛出异常。我已经为网站运行的应用程序池设置了“启用32位应用程序”为True,但这没有帮助。
我也试图将目标平台设置为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)
我在线搜索异常“由于以下错误,检索CLSID {58968145-CF05-4341-995F-2EE093F6ABA3}组件的COM类工厂失败:80040154”并且在IIS7上启用了32位模式,但仍然没有运气。
非常感谢任何帮助。
**答案** 我能够在用户Kev的帮助下解决此问题。这就是我做的 -
非常感谢,Kev。我真的很感激。
答案 0 :(得分:2)
这听起来好像COM组件未在服务器上注册。您需要将组件(dsofile.dll)复制到服务器并运行regsvr32.exe
进行注册:
regsvr32 dsofile.dll
您还需要确保网站运行的帐户具有对此文件或其包含文件夹的读取权限。
也许值得尝试构建项目并将构建更改为目标x86而不是任何CPU,但我怀疑这是问题。
答案 1 :(得分:-1)
您可能需要将应用程序运行的应用程序池设置为以x86运行。