Проблема с развертыванием приложения ASP.NET на веб-сервер

Я получаю сообщение об ошибке при переносе приложения с локального компьютера на веб-сервер. (Я не получал ошибок на моем локальном хосте)

Код, генерирующий исключение, приведен ниже:

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 (трассировка стека внутренних исключений) --- Конец внутренней трассировки исключений - в Microsoft.Data.SqlXml.SqlXmlCommand.ExecuteStream () в Microsoft.Data.SqlXml.SqlXmlCommand.ExecuteXmlReader () в dialog.login.UserLogin (строковое имя пользователя, строковый пароль, строковый язык)

Исключение №2:

«Вход пользователя - выброшенное исключение: исключение из HRESULT: 0x80040E14» Microsoft.Data.SqlXml.SqlXmlException: исключение из HRESULT: 0x80040E14 ---> System.Runtime.InteropServices.COMException: исключение из HRESULT: 0x80040E14 в Microsoft.Data.SqlXml. Common.UnsafeNativeMethods.ISQLXMLCommandManagedInterface.ExecuteToOutputStream () в Microsoft.Data.SqlXml.SqlXmlCommand.innerExecute (Stream strm) --- Конец трассировки стека внутренних исключений --- в Microsoft.Data.SqlXml.SqlXmlCommand.Stream. Data.SqlXml.SqlXmlCommand.ExecuteXmlReader () в dialog.login.UserLogin (строковое имя пользователя, строковый пароль, строковый язык)

Первое исключение - это первая ошибка, возникшая при использовании SQLOLEDB.1 в качестве моего провайдера. Я начал экспериментировать с разными провайдерами и получил второе второе исключение.

Любые идеи?


person Brandon    schedule 22.06.2011    source источник


Ответы (2)


Эта проблема заключалась в том, что на моем компьютере был установлен MSXML 6.0, но не на сервере. Установка MSXML 6.0 на сервер устранила эту проблему.

person Brandon    schedule 24.06.2011

Установлен ли на целевой машине поставщик SQLOLEDB? Убедитесь, что это так, и попробуйте еще раз.

person Matthew Abbott    schedule 22.06.2011
comment
Да, он в настоящее время установлен на нашем сервере, и мы используем IIS6.0, проблема не устранена. - person Brandon; 22.06.2011