У меня проблема с получением доступа к базе данных, которая находится на удаленном сервере.
У меня есть веб-страница ASP.NET 2.0, которая пытается подключиться к базе данных.
Доступ к базе данных осуществляется через виртуальную папку (которую я настроил в IIS).
Виртуальная папка указывает на удаленный общий ресурс, который содержит базу данных.
Виртуальная папка (в корневом каталоге веб-приложений) указывает на общий ресурс на удаленном сервере по пути UNC:
\\databaseServerName\databaseFolder$\
Виртуальная папка имеет права на чтение и просмотр, установленные на «истина».
Я храню строку подключения в разделе «appSettings» web.config:
<add key="conStrVirtual" value="Provider=Microsoft.Jet.OleDb.4.0;Data Source=http://webAppServerName/virtualFolderName/databaseName.MDB;Jet OLEDB:Database Password=dumbPassword;"/>
Объект подключения объявлен на моей странице .aspx:
Dim objConnVirtual As New OleDbConnection(ConfigurationManager.AppSettings("conStrVirtual"))
Вот код, который пытается использовать объект подключения:
Public Sub Test()
If objConnVirtual.State <> ConnectionState.Open Then
objConnVirtual.Open()
End If
Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM TableName", objConnVirtual)
objDR = cmd.ExecuteReader()
If objDR.Read() Then
response.write("Shazaam! Data shows up here")
End If
objDR.Close()
objConnVirtual.Close()
End Sub
Когда я запускаю приведенный выше код, я получаю следующую ошибку (в этой строке кода 'objConnVirtual.Open ()':
Сведения об исключении: System.Data.OleDb.OleDbException: недопустимое имя файла.
Я проверил имя базы данных, и оно правильное (даже скопируйте / вставьте его, чтобы убедиться)
Если я поместил раздел «Источник данных» строки подключения в адресную строку моего браузера, я смогу успешно увидеть содержимое общего ресурса на удаленном сервере.
Не уверен, если это проблема с разрешениями или с кодом.
Я нашел в этом дерьмо, но не смог найти решение.
Любая помощь очень ценится.