Веб-сайт ASP.Net по IIS, подключающийся к базе данных Access со списками ссылок на SharePoint на другом компьютере - PullRequest
1 голос
/ 19 июня 2009

Моя проблема заключается в следующем,

У меня есть веб-сайт ASP.Net, размещенный на IIS. Этот веб-сайт подключается к файлу БД Access 2007 на том же сервере. Файл БД содержит ссылки на списки sharepoint на другом сервере в том же домене. Если я запускаю веб-сайт на встроенном сервере Visual Studio, я могу открыть соединение с файлом БД и получить данные очень хорошо. Но всякий раз, когда я пытаюсь запустить веб-сайт через IIS, веб-сайт не может открыть соединение с файлом БД.

Как вы думаете, в чем проблема?

Спасибо.

Ответы [ 4 ]

2 голосов
/ 20 июня 2009

Это будет проблема с разрешениями. Когда вы работаете с веб-сервером Visual Studio, он работает как вы, а IIS (по умолчанию) работает как сетевая служба. Это ограничено в том, что он может делать.

Для доступа к базе данных доступа (без каламбура) учетной записи, под которой работает IIS, потребуется способность читать, писать, выполнять, изменять и удалять каталог, в котором находится база данных. По умолчанию это должно быть предоставлено APP_DATA директории, если ваша база данных доступа находится где-то еще, вам необходимо предоставить эти разрешения.

Подключение через доступ к удаленному компьютеру - это совсем другая проблема, маловероятно, что это будет работать, поскольку учетная запись сетевой службы является локальной учетной записью и не будет существовать на сервере sharepoint, и вы не можете предоставить доступ, потому что он не существует.

Если вы находитесь в домене, вы можете запустить IIS под подходящей заблокированной учетной записью домена, и это может сработать, но, честно говоря, все это немного грязно!

1 голос
/ 22 июня 2009

Access 2007 упрощает подключение к SharePoint. После ссылки на список ADO и даже код DAO + VBA и ваши sql-запросы работают с этими списками!

Я видел, как многие люди начали использовать JET (фактически он назывался ACE в Access 2007) в качестве соединителя данных для SharePoint по этой самой причине. Поскольку вы создаете систему на основе веб-интерфейса, мы используем здесь не ms-доступ, а ТОЛЬКО версию 2007 механизма обработки данных JET, поставляемую с доступом 2007.

Кто-то должен предоставить поставщика OLEDB для списков SharePoint, который позволяет веб-сайту или коду .net просматривать эти списки как стандартные таблицы sql, такие как ms-access. Использование JET в качестве системы передачи данных, вероятно, не очень хорошая идея. Я понимаю, что вы не храните и не помещаете данные в таблицу доступа JET, но используете замечательную способность нового механизма доступа JET для просмотра и использования списков SharePoint в качестве обычных таблиц SQL. Этот подход позволяет вашему ASP.net-коду выполнять обновления SQL для этих данных или делать что-либо, как если бы это была обычная таблица SQL. Это действительно так просто.

Таким образом, разрешения безопасности на сайте SharePoint будут рассматривать это соединение не как конечного пользователя, а всегда видеть пользователя как реального подключающегося веб-сайта (или, по крайней мере, пользователя, к которому у вас был ms-доступ при подключении). таблица для SharePoint). Я не верю, что процесс аутентификации пользователей SharePoint может работать надежно, когда вы делаете это. Что произойдет, если вы измените несколько вещей на сайте SharePoint, и в следующий момент вы узнаете, что соединение JET будет пытаться запросить у вас новые учетные данные для входа. Вы не можете ни предоставлять, ни контролировать эти учетные данные для входа в данный момент.

Итак, как отмечали другие, это будет проблематично и ненадежно.

1 голос
/ 19 июня 2009

Посмотрите на эту статью:

Как подключиться к базе данных удаленного доступа со страниц Active Server
http://support.microsoft.com/kb/253580

Да, я знаю, что ваша база данных находится на том же компьютере, но при запуске IIS существуют различия в разрешениях и аутентификации для файлов и папок. Вполне вероятно, что все, что вас вешает, рассмотрено в этой статье.

Хорошо ли смешивать базы данных Access и IIS или нет - это отдельное обсуждение ...

0 голосов
/ 22 июня 2009

Использование Access в качестве выдумки для доступа к SharePoint с сайта ASP.net принесет вам много боли в долгосрочной перспективе.

Гораздо лучшим способом было бы использовать веб-службы SharePoint для доступа к этим данным - полностью исключить Access из уравнения.

http://www.scribd.com/doc/8634090/Accessing-SharePoint-Data-Using-C-Without-Running-Code-On-the-SharePoint-Server-Part-1

MSDN - Использование веб-служб ASP.NET

Создание и использование веб-службы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...