2012-01-25 1 views
1

У меня есть приложение C# /. Net, которое по сути является толстым приложением для сбора данных о клиентах. Учитывая номер детали, он выполняет некоторые запросы БД (к внешнему БД Orcale), некоторые запросы Sharepoint, а также ищет некоторые сетевые диски для соответствующей информации. Теперь я пытаюсь изменить это на сервис-ориентированную архитектуру. Веб-служба теперь находится на сервере, а при вызове тонкого клиента выполняются запросы db, запросы sharepoint и запросы к файловой системе и возвращают результаты. Все это хорошо работает, кроме поиска файлов. Похоже, поиск выглядит пустым, потому что веб-служба выполняется в своей собственной виртуальной файловой системе и не может смотреть на сетевые диски для сканирования файлов, которые необходимо сканировать.Как включить доступ к файловой системе для веб-службы?

Может ли кто-то рекомендовать правильный способ обеспечения защищенного доступа для чтения к сетевым дискам, чтобы служба могла получить необходимую информацию? Я не собираюсь подавать этот файл непосредственно на тонкий клиент, просто позвольте службе иметь полный доступ к полному массиву сетевых дисков в нашем офисе. Кстати, веб-служба размещена на IIS 6, Windows Server 2003.

+0

Используется ли активный каталог? – Kev

+0

Да, активный каталог используется –

ответ

0

В зависимости от пользователя выполняется веб-служба (я не помню, что по умолчанию для IIS6, но подозревается, что это по существу «СЕТЕВАЯ СЛУЖБА »), он не сможет читать сетевые ресурсы, если они защищены. Лучше всего создать учетную запись домена для запуска веб-службы и использовать «Диспетчер служб IIS», чтобы настроить пул приложений для запуска в качестве указанного пользователя (ПРИМЕЧАНИЕ. Для IIS 6 вам также необходимо добавить пользователь в ЛОКАЛЬНУЮ группу пользователей «IIS_WPG»).

Одна небольшая заметка, вы упоминаете «сетевые диски» на протяжении всего вашего вопроса; ваша служба не будет использовать ни один из ваших сетевых подключенных сетевых дисков, поэтому вам нужно будет предоставить ему полные пути UNC (т. е. \\server\share, а не m:\), чтобы он работал.

+0

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

+0

@RandyGamage, рад, что это помогло =) бит pass-thru credentials - это совсем другой чайник с рыбой, который в целом довольно легко решить. Вероятно, здесь есть вопрос или два (и/или на serverfault), который покроет его для вас. – Rob