2013-08-22 3 views
0

У меня есть база данных Access с локальными и удаленными таблицами. Удаленные таблицы связаны с базой данных Sql Server через соединение ODBC.Ошибка при попытке выполнить запрос с использованием таблицы удаленных доступа

Когда я открываю базу данных Access, я могу открывать и просматривать содержимое как локальных, так и удаленных таблиц. Таким образом, это является доказательством того, что не должно быть никаких проблем с подключением к удаленным таблицам из приложения ASP.NET.

Теперь, когда я запускаю свое приложение ASP.NET в Visual Studio, я могу получить доступ к локальным и удаленным таблицам в Доступ без проблем.

Как только я помещаю свое приложение в IIS и запускаю приложение из localhost, я могу получить доступ к локальным таблицам в файле Access с моим кодом, но ни один из удаленных таблиц! Я получаю следующую ошибку при попытке: «ODBC - соединение с« FMPOS_live »не удалось». Но помните, что у меня нет проблем с открытием удаленных таблиц из Access напрямую, но я не могу получить к ним доступ из моего приложения, работающего в IIS, по какой-то причине.

Есть ли разрешение где-то в зависимости от того, кто или что обращается к файлу доступа, определяет, может ли этот процесс использовать удаленные таблицы?

ответ

0

Проблема была в идентификации пула приложений. Доступ не позволял доступ к его удаленным таблицам по умолчанию ApplicationPoolIdentity Identity. Я изменил идентификатор на мой вход в Windows, и это сработало!

Инструкции: 1. Перейдите к Пул приложений для вашего сайта 2. Нажмите на него и выберите Дополнительные параметры 3. В Process Model Identity, выберите Выборочная учетную запись и введите имя пользователя и пароль для входа в систему окон.

1

При работе с Visual Studio вы используете свои собственные учетные данные для подключения к SQL-серверу.

При работе с IIS вы используете приложение ApplicationPoolIdentity, Network Service или Local System в зависимости от конфигурации пула приложений. Вам нужно будет разрешить права входа и чтения в зависимости от того, на какой учетной записи работает веб-сайт.

В случае запуска из VS это, вероятно, работает, потому что вы, вероятно, sysadmin на SQL-сервере.

Попробуйте проверить, работает ли пользователь «w3wp.exe» в диспетчере задач.

В случае ApplicationPoolIdentity имя пользователя, которое вы ищете, будет IIS APPPOOL \ NameOfApplicationPool.

+0

Я дал пользователю «Все», полный доступ к базе данных Access, и мое веб-приложение по-прежнему не может получить доступ к удаленным таблицам базы данных Access. При этом у него нет проблем с доступом к локальным таблицам. Если это проблема сервера Sql, как Sql Server даже знает, какой процесс использует базу данных Access, чтобы обеспечить доступ к ее таблицам? Я установил эту ситуацию на совершенно другом веб-сервере, используя другую базу данных Access, содержащую удаленные таблицы, в другую базу данных Sql Server, и то же самое происходит, поэтому не похоже, что это какая-то непонятная проблема, ограниченная одним компьютером. идеи? –

+1

Таблицы связаны через доступ db? Человек это звучит сложно! Независимо от того, что я предполагаю, что процесс IIS, который открывает базу данных доступа, по-прежнему является процессом открытия SQL-соединения, и для этого требуются разрешения. Я понимаю, что теперь мой ответ был неясным, вам нужно добавить разрешения на базу данных SQL Server, а не базу данных доступа. –

+0

Но я использую Sql Server Authentication с именем пользователя и паролем в ODBC для подключения к Sql Server, а не к аутентификации Windows. –