简体   繁体   中英

Problem deploying ASP.NET app to web server

I have been getting an error when moving my application from my local machine to a web server. (I have not been getting the errors on my local host)

The code throwing the exception is listed below:

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

The specific Line that is throwing the exception is : Dim oXR As XmlReader = cmd.ExecuteXmlReader()

The logging information revealed the exceptions below:

Exception #1:

User Login - Exception Thrown: SQLOLEDB or SQLNCLI must be specified as the data provider." Microsoft.Data.SqlXml.SqlXmlException: SQLOLEDB or SQLNCLI must be specified as the data provider. ---> System.Runtime.InteropServices.COMException: SQLOLEDB or SQLNCLI must be specified as the data provider. at Microsoft.Data.SqlXml.Common.UnsafeNativeMethods.ISQLXMLCommandManagedInterface.ExecuteToOutputStream() at Microsoft.Data.SqlXml.SqlXmlCommand.innerExecute(Stream strm) --- End of inner exception stack trace --- at Microsoft.Data.SqlXml.SqlXmlCommand.ExecuteStream() at Microsoft.Data.SqlXml.SqlXmlCommand.ExecuteXmlReader() at dialogue.login.UserLogin(String username, String password, String lang)

Exception #2:

"User Login - Exception Thrown: Exception from HRESULT: 0x80040E14" Microsoft.Data.SqlXml.SqlXmlException: Exception from HRESULT: 0x80040E14 ---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x80040E14 at Microsoft.Data.SqlXml.Common.UnsafeNativeMethods.ISQLXMLCommandManagedInterface.ExecuteToOutputStream() at Microsoft.Data.SqlXml.SqlXmlCommand.innerExecute(Stream strm) --- End of inner exception stack trace --- at Microsoft.Data.SqlXml.SqlXmlCommand.ExecuteStream() at Microsoft.Data.SqlXml.SqlXmlCommand.ExecuteXmlReader() at dialogue.login.UserLogin(String username, String password, String lang)

The first of the exceptions is the first error that came up using SQLOLEDB.1 as my provider, I started playing around with different providers and got the second 2nd exception.

Any ideas?

This problem that I had was, MSXML 6.0 was installed on my machine but not the server. Installing MSXML 6.0 on the server resolved this issue.

Has the SQLOLEDB provider installed on the target machine? Check that it does and try again.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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