【问题标题】:Problem deploying ASP.NET app to web server将 ASP.NET 应用程序部署到 Web 服务器时出现问题
【发布时间】:2011-06-22 16:12:40
【问题描述】:

将我的应用程序从本地计算机移动到 Web 服务器时出现错误。 (我的本地主机上没有出现错误)

抛出异常的代码如下:

Dim sSQL As String
Dim strXSLFile As String
sSQL = "<?xml version=""1.0""  ?>"
sSQL += "<ROOT xmlns:sql=""urn:schemas-microsoft-com:xml-sql"">"
sSQL += "<sql:header>"
sSQL += "<sql:param name='uid'/>"
sSQL += "<sql:param name='pwd'/>"
sSQL += "</sql:header>"
sSQL += "<SESSION>"
sSQL += "<LANG>" & lang & "</LANG>"
sSQL += "<SSN>" & Session.SessionID & "</SSN>"
sSQL += "</SESSION>"

sSQL += "<sql:query>exec objSession_login @uid,@pwd</sql:query>"
sSQL += "</ROOT>"

Dim myxml As New XmlDocument
Try
    Using conn As SqlConnection = CustomClass.Data.SqlConnectionProvider.Create()
        Dim cmd As SqlXmlCommand
        cmd = New SqlXmlCommand(conn.ConnectionString & ";Provider=SQLOLEDB.1;")
        cmd.CommandType = SqlXmlCommandType.Template
        cmd.CommandText = sSQL
        Dim paramUid As SqlXmlParameter = cmd.CreateParameter()
        paramUid.Name = "@uid"
        paramUid.Value = username
        Dim paramPwd As SqlXmlParameter = cmd.CreateParameter()
        paramPwd.Name = "@pwd"
        paramPwd.Value = password
        Dim oXR As XmlReader = cmd.ExecuteXmlReader() ' Problem is here
        myxml.Load(oXR)
    End Using

    strXSLFile = "xsl/Dialogue.login.xsl"
    Dim mytransform As New XslTransform
    Dim myreader As XmlReader
    Dim myresolver As XmlResolver

    Dim xpDoc As New XPathDocument(New XmlNodeReader(myxml))

    mytransform.Load(Current.Request.PhysicalApplicationPath & strXSLFile)
    myreader = mytransform.Transform(xpDoc, Nothing, myresolver)

    myxml.Load(myreader)
    mytransform = Nothing
    myreader = Nothing
    myresolver = Nothing
    xpDoc = Nothing

    xmlloaddoc = myxml

Catch ex As Exception
    LogWriter.CriticalError(ex, "User Login - Exception Thrown: " & ex.Message)
    Err.Raise(Number:=Err.Number, Description:=ex.StackTrace)
End Try

引发异常的具体行是:Dim oXR As XmlReader = cmd.ExecuteXmlReader()

日志信息显示以下异常:

异常 #1:

用户登录 - 抛出异常:必须将 SQLOLEDB 或 SQLNCLI 指定为数据提供者。” Microsoft.Data.SqlXml.SqlXmlException:必须将 SQLOLEDB 或 SQLNCLI 指定为数据提供者。 ---> System.Runtime.InteropServices.COMException:必须将 SQLOLEDB 或 SQLNCLI 指定为数据提供者。在 Microsoft.Data.SqlXml.Common.UnsafeNativeMethods.ISQLXMLCommandManagedInterface.ExecuteToOutputStream() 在 Microsoft.Data.SqlXml.SqlXmlCommand.innerExecute(Stream strm) --- 内部异常堆栈跟踪结束 --- 在 Microsoft.Data.SqlXml.SqlXmlCommand .ExecuteStream() at Microsoft.Data.SqlXml.SqlXmlCommand.ExecuteXmlReader() at dialog.login.UserLogin(String username, String password, String lang)

异常 #2:

“用户登录 - 抛出异常:HRESULT 异常:0x80040E14” Microsoft.Data.SqlXml.SqlXmlException:来自 HRESULT 的异常:0x80040E14 ---> System.Runtime.InteropServices.COMException:来自 HRESULT 的异常:Microsoft.Data.SqlXml.Common.UnsafeNativeMethods.ISQLXMLCommandManagedInterface.ExecuteToOutputStream() 的 Microsoft.Data 的 0x80040E14 .SqlXml.SqlXmlCommand.innerExecute(Stream strm) --- 内部异常堆栈跟踪结束 --- 在 Microsoft.Data.SqlXml.SqlXmlCommand.ExecuteStream() 在 Microsoft.Data.SqlXml.SqlXmlCommand.ExecuteXmlReader() 在 dialog.login .UserLogin(String username, String password, String lang)

第一个异常是使用 SQLOLEDB.1 作为我的提供程序时出现的第一个错误,我开始使用不同的提供程序并得到第二个第二个异常。

有什么想法吗?

【问题讨论】:

    标签: asp.net vb.net visual-studio-2010 deployment sqlxml


    【解决方案1】:

    我遇到的这个问题是,MSXML 6.0 安装在我的机器上,但没有安装在服务器上。在服务器上安装 MSXML 6.0 解决了这个问题。

    【讨论】:

      【解决方案2】:

      是否在目标机器上安装了 SQLOLEDB 提供程序?检查它并重试。

      【讨论】:

      • 是的,它当前安装在我们的服务器上,我们使用的是 IIS6.0,问题仍然存在。
      猜你喜欢
      • 2015-11-19
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2011-12-13
      • 2020-01-01
      • 1970-01-01
      相关资源
      最近更新 更多