リモート サーバー上にあるデータベースへのアクセスに問題があります。
データベースに接続しようとしている ASP.NET 2.0 Web ページがあります。
データベースには、(IIS で設定した) 仮想フォルダーを介してアクセスします。
仮想フォルダは、データベースを含むリモート共有を指しています。
仮想フォルダー (Web アプリのルート ディレクトリ内) は、UNC パス経由でリモート サーバー上の共有を指しています。
\\databaseServerName\databaseFolder$\
仮想フォルダには、「読み取り」および「参照」権限が「true」に設定されています。
接続文字列を web.config の「appSettings」セクションに保存します。
<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()' のこの行:
Exception Details: System.Data.OleDb.OleDbException: Not a valid file name.
データベース名を確認しましたが、正しいです(確認するためにコピー/貼り付けしても)
接続文字列の「データ ソース」セクションをブラウザのアドレス バーに入力すると、リモート サーバー上の共有の内容を正常に表示できます。
これが権限の問題なのか、コードの問題なのかはわかりません。
私はこれからがらくたをグーグルで検索しましたが、解決策を見つけることができませんでした。
どんな助けでも大歓迎です。