У меня есть два компьютера, подключенных друг к другу через WAN.

Я поделился папкой, содержащей Access Database и я даю разрешение всем на все в самой базе данных.

Теперь код, который я использую:

string connectionString = string.Empty;
connectionString  = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\winPcDemo-570f\abcd\testDB.mdb; Jet OLEDB:Database Password=**********;";
OleDbConnection tmpconnection = new OleDbConnection(connectionString);

tmpconnection.Open(); // ERROR 

Но это приводит к ошибке:

Ошибка диска или сети.

В отличие от любого другого вопроса на этом сайте, поэтому я публикую это.

2 ответа2

0

Было бы полезно, если бы вы попытались зайти в \\Macbookpro-570f \abcd \ из проводника, чтобы проверить, есть ли проблема с настройкой сети или общего ресурса. (Обновите свой ответ с результатом).

Моя первая мысль, хотя это разрешения. Доступ требует достаточных разрешений для создания файла .ldb в той же папке, а также для возможности изменения файла .mdb. Общие ресурсы Windows имеют 2 набора разрешений, которые применяются. Первый - это разрешения для общего ресурса, второй - фактические разрешения NTFS для файла / папки. Вы должны убедиться, что ОБА из этих наборов разрешений предоставляет правильные достаточные права пользователя для изменения mdb и создания ldb.

0

Я бы попытался сопоставить путь к букве диска. Перейдите в командную строку (может потребоваться открыть как администратор) и выполните следующие действия:

net use q: \\winPcDemo-570f\abcd mypassword /USER:myaccount

(mypassword и моя учетная запись должны быть ваши учетные данные, если это необходимо. Вы можете использовать другую букву диска, кроме q, если это необходимо.)

Затем вы можете использовать

Data Source=Q:\testDB.mdb

вместо

Data Source=\\winPcDemo-570f\abcd\testDB.mdb

Я думаю, что это должно работать так, как вы указали, но, возможно, это позволит вам исключить, является ли это проблемой кода или проблемой ОС / привилегий.

Надеюсь это поможет!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .