Пул приложений Asp.net и подключение к данным сервера sql - PullRequest
1 голос
/ 20 июля 2010

У меня есть приложение asp.net, которое запускается в пользовательском пуле приложений под учетной записью уровня обслуживания. У меня анонимный доступ отключен в web.config. Веб-сервер является частью домена. Приложение обращается к серверу sql, который работает на той же машине.

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

Мне не разрешено создавать учетную запись сервера SQL, я должен работать с тем, что у меня есть. Мне также не разрешено добавлять каждого отдельного пользователя в базу данных и предоставлять им определенный доступ.

У меня вопрос, как я могу настроить свое приложение и базу данных таким образом, чтобы мне не приходилось выполнять олицетворение учетной записи уровня обслуживания и, таким образом, избегать перегрузки ЦП при высоком уровне использования сайта.

1 Ответ

1 голос
/ 20 июля 2010

Вам не нужно выдавать себя за служебную учетную запись.Учетная запись службы - это учетная запись, которая нуждается в доступе к базе данных, и я полагаю, что она уже есть.Вы уже пытались запустить свое приложение без олицетворения учетной записи службы при доступе к базе данных?Это должно работать.

Чтобы выполнить простой тест, проверьте идентичность, возвращаемую WindowsIdentity.GetCurrent() (например, внутри Page_Load).Это должно вернуть удостоверение пула приложений, и это удостоверение, которое будет использоваться для доступа к базе данных.

Конечно, это работает, только если у вас не настроено олицетворение клиента в вашей сетиФайл .config.Но так как это не общая практика, за исключением некоторых угловых случаев, я полагаю, вы не используете это.Олицетворение клиента не требуется для определения того, кто является текущим пользователем, его следует использовать только тогда, когда вы хотите получить доступ к сторонним системам (базам данных, файловым ресурсам, очередям и т. Д.) С использованием идентификатора текущего пользователя (которыйне очень масштабируемый подход).

...