원격 서버에있는 데이터베이스에 액세스하는 데 문제가 있습니다.원격 공유를 가리키는 가상 폴더를 통해 데이터베이스에 액세스하는 방법
데이터베이스에 연결하려는 ASP.NET 2.0 웹 페이지가 있습니다.
데이터베이스에 가상 폴더 (IIS에서 설정)를 통해 액세스합니다.
가상 폴더는 데이터베이스가 포함 된 원격 공유를 가리 킵니다. 가상 폴더로 설정 권한을 '검색', '읽기'와있다
\\databaseServerName\databaseFolder$\
: (웹 루트 디렉토리 애플 리케이션에)
가상 폴더는 UNC 경로를 통해 원격 서버의 공유에 가리키는 '참된'.
이 연결 개체 내 .aspx 페이지에 declard됩니다<add key="conStrVirtual" value="Provider=Microsoft.Jet.OleDb.4.0;Data Source=http://webAppServerName/virtualFolderName/databaseName.MDB;Jet OLEDB:Database Password=dumbPassword;"/>
: 여기
Dim objConnVirtual As New OleDbConnection(ConfigurationManager.AppSettings("conStrVirtual"))
코드입니다
나는의 Web.config의 'appSettings는'섹션에서 연결 문자열을 저장
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
위의 코드를 실행하면 다음과 같은 전자 메일이 표시됩니다. rror (이 코드 줄의 'objConnVirtual.Open()':
예외 정보 : System.Data.OleDb.OleDbException : 유효한 파일 이름이 아닙니다.
(심지어 복사/그것을 확인하기 위해 붙여 넣기) 내 브라우저의 주소 표시 줄에 연결 문자열의 '데이터 원본'섹션을 넣으면
I 원격 서버의 공유 내용을 성공적으로 볼 수 있습니다.
사용 권한이나 코드에 문제가 있는지 확실하지 않습니다.
나는이 헛소리를 봤지만 해결책을 찾을 수 없었다.
어떤 도움
이 많이 감사합니다.
안녕 루이, 답변 주셔서 감사합니다. AppPool을 전용 서비스 사용자와 함께 실행 시키자 '라는 말의 의미를 확장 할 수 있습니까? 내 응용 프로그램 용으로 새 응용 프로그램 풀을 추가했지만 여전히 웹 페이지를 통해 데이터베이스에 액세스 할 수 없습니다. – Dhaust
또한 UNC 경로에 데이터베이스 이름을 넣지 않아도됩니다. 현재 연결 문자열 (데이터 원본 = http : //webAppServerName/virtualFolderName/databaseName.mdb)에 데이터베이스 이름이 있습니다. – Dhaust
안녕하세요. Windows 2003 Server에서 IIS 6을 사용하면 응용 프로그램 풀이 ID로 실행됩니다. 기본적으로 이것은 네트워크 서비스 계정입니다. 응용 프로그램이 실행되면이 사용자의 컨텍스트에서 실행됩니다. ID 탭에서 변경할 수 있습니다. MDB는 http를 통해 직접 액세스 할 수 없습니다. –