繁体   English   中英

将ASP.NET应用程序部署到Web服务器时出现问题

[英]Problem deploying ASP.NET app to web server

将我的应用程序从本地计算机移到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 Microsoft.Data.SqlXml.Common.UnsafeNativeMethods.ISQLXMLCommandManagedInterface.ExecuteToOutputStream()处的Microsoft.Data.SqlXml.SqlXmlCommand.innerExecute(Stream strm)---内部异常堆栈跟踪的结尾- -在Microsoft.Data.SqlXml.SqlXmlCommand.ExecuteStream()在Microsoft.Data.SqlXml.SqlXmlCommand.ExecuteXmlReader()在dialog.login.UserLogin(字符串用户名,字符串密码,字符串lang)

例外#2:

“用户登录-引发的异常:来自HRESULT的异常:0x80040E14” Microsoft.Data.SqlXml.SqlXmlException:来自HRESULT的异常:0x80040E14 ---> System.Runtime.InteropServices.COMException:来自Microsoft.Data.SqlXml的HRESULT的异常:0x80040E14。 Microsoft.Data.SqlXml.SqlXmlCommand.innerExecute(Stream strm)的Common.UnsafeNativeMethods.ISQLXMLCommandManagedInterface.ExecuteToOutputStream()---内部异常堆栈跟踪的结尾--- Microsoft的Microsoft.Data.SqlXml.SqlXmlCommand.ExecuteStream() Data.SqlXml.SqlXmlCommand.ExecuteXmlReader()位于dialog.login.UserLogin(字符串用户名,字符串密码,字符串lang)

第一个异常是使用SQLOLEDB.1作为提供程序时出现的第一个错误,我开始尝试使用其他提供程序并获得了第二个第二个异常。

有任何想法吗?

我曾经遇到过此问题,我的计算机上安装了MSXML 6.0,但服务器未安装。 在服务器上安装MSXML 6.0解决了此问题。

目标计算机上是否已安装SQLOLEDB提供程序? 检查是否正确,然后重试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM