【问题标题】:Error with SQLXMLCommand and Deployment to IIS 6.0SQLXMLCommand 和部署到 IIS 6.0 时出错
【发布时间】: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


【解决方案1】:

除了托管的 SQLXML 程序集,您还需要在服务器上安装本机 SQLXML 库。

SQLXML 库记录在 http://msdn.microsoft.com/en-us/library/ms171779.aspx,您可以在 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8824 找到安装程序

【讨论】:

    猜你喜欢
    • 2010-11-19
    • 1970-01-01
    • 2011-01-12
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    相关资源
    最近更新 更多