【发布时间】:2011-09-15 16:23:40
【问题描述】:
尝试将我的 ASP.NET 应用程序从 VS2010 移动到我们的 IIS 6.0 网络服务器时出现错误。该错误发生在应用程序第一次尝试在登录页面上创建新的 SQLXMLCommand 对象时。
导航到登录页面并输入有效凭据时,我收到一条错误消息,指出引发了空引用异常。通过调查异常,我们能够确定另一个异常被抛出和捕获,导致代码稍后出现空引用异常。
抛出异常的对应代码行:
New SqlXmlCommand(conn.ConnectionString & ";Provider=SQLOLEDB.1;")
导致以下问题的异常:
检索具有 CLSID {83D0FC3E-8B31-4B35-A1B2-346BA3954514} 的组件的 COM 类工厂失败,原因是以下错误:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。 System.Runtime.InteropServices.COMException (0x80040154):检索具有 CLSID {83D0FC3E-8B31-4B35-A1B2-346BA3954514} 的组件的 COM 类工厂失败,原因是以下错误:80040154 未注册类(来自 HRESULT 的异常:0x80040154(REGDB_E_CLASSNOTREG) ))。在 System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandleInternal& ctor,Boolean& bNeedSecurityCheck)在 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly,Boolean skipCheckThis,Boolean fillCache)在 System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly , Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) 在 Microsoft.Data.SqlXml.SqlXmlCommand.fillManagedWrapper() 在 Microsoft.Data.SqlXml.SqlXmlCommand.construct() 在 Microsoft.Data.SqlXml.SqlXmlCommand.fillManagedWrapper() System.Activator.CreateInstance(Type type, Boolean nonPublic)。 Data.SqlXml.SqlXmlCommand..ctor(String cnString) at dialog.login.UserLogin(String username, St 2011-Jun-15 11:40:52.104 CriticalError N/A 58“http://sigappsdv/dialogue/login.aspx”dialog.login.UserLogin --->“Webservice 在 System.RuntimeTypeHandle.CreateInstance 失败 2(RuntimeType 类型, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal&ctor, Boolean& bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache) at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) ) 在 System.Activator.CreateInstance(Type type, Boolean nonPublic) 在 Microsoft.Data.SqlXml.SqlXmlCommand.fillManagedWrapper() 在 Microsoft.Data.SqlXml.SqlXmlCommand.construct() 在 Microsoft.Data.SqlXml.SqlXmlCommand..ctor( String cnString) at dialog.login.UserLogin(String username, String password, String lang)"
进一步研究问题,异常仅在 Web 服务器上引发。如果我使用 localhost,则不会引发异常。我虽然可能缺少对 Microsoft.Data.SqlXml.dll 的引用,因为它在本地主机上工作,而不是在网络服务器上。我尝试通过在我的部署项目中包含 dll 引用并确保将其添加到 bin 文件夹中来解决此问题,但无济于事。
谢谢你的帮助。
编辑:
SQLXML 4.0 没有安装在我们的网络服务器上,它是我机器基线安装的一部分。
【问题讨论】:
-
服务器上当前安装的 MSXML 版本是什么?
标签: asp.net vb.net iis-6 web-deployment sqlxml