尝试将我的 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):检索 COM 类工厂的 CLSID {83D0FC3E-8B31-4B35-A1B2-346BA3954514} 组件失败,原因是以下错误: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。在 Microsoft.Data.SqlXml.SqlXmlCommand.fillManagedWrapper() 在 Microsoft.Data.SqlXml.SqlXmlCommand.construct( ) 在 Microsoft.Data.SqlXml.SqlXmlCommand..ctor(String cnString) 在 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) 在 System.RuntimeType.CreateInstanceSlow(布尔型 publicOnly,Microsoft.Data.SqlXml.SqlXmlCommand.fillManagedWrapper() 中 System.Activator.CreateInstance(Type type, Boolean nonPublic) 中 System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache)在 Microsoft.Data.SqlXml.SqlXmlCommand.construct() 在 Microsoft.Data.SqlXml.SqlXmlCommand..ctor(String cnString) 在 dialog.login.UserLogin(String username, String password, String lang)"Microsoft.Data.SqlXml.SqlXmlCommand..ctor(String cnString) 处的construct().login.UserLogin(String username, String password, String lang)"Microsoft.Data.SqlXml.SqlXmlCommand..ctor(String cnString) 处的construct().login.UserLogin(String username, String password, String lang)"
进一步查看问题,异常仅在 Web 服务器上引发。如果我使用 localhost,则不会引发异常。我虽然可能缺少对 Microsoft.Data.SqlXml.dll 的引用,因为它在本地主机上工作,而不是在网络服务器上。我尝试通过在我的部署项目中包含 dll 引用并确保将其添加到 bin 文件夹来解决此问题,但无济于事。
谢谢您的帮助。
编辑:
SQLXML 4.0 没有安装在我们的网络服务器上,它是我机器基线安装的一部分。