Проблема с развертыванием приложения ASP.NET на веб-сервере - PullRequest
0 голосов
/ 22 июня 2011

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

Код, выдающий исключение, указан ниже:

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

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

Есть идеи?

Ответы [ 2 ]

1 голос
/ 24 июня 2011

У меня была проблема, MSXML 6.0 была установлена ​​на моей машине, но не на сервере.Установка MSXML 6.0 на сервере решила эту проблему.

0 голосов
/ 22 июня 2011

Установлен ли поставщик SQLOLEDB на целевом компьютере?Проверьте это и попробуйте снова.

...