4

У меня недавно было some problems, что, по-моему, может помочь отладка моего приложения ASP.NET MVC в IIS вместо стандартного ASP.NET-сервера разработки. Тем не менее, когда я пытаюсь это сделать, приложение не может получить доступ к серверу базы данных (MS SQL Server 2008 Express) - он отлично работает на сервере разработки.Добавить пользователя в SQL Server 2008 - разрешено отклонение

Ошибки я получаю

Cannot open database 'myDbName' requested by the login. The login failed. Login failed for user 'NT INSTANCE/NETWORK SERVICE'.

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

Я попробовал добавить в базу данных пользователя NETWORK SERVICE, но оказалось, что у меня нет пользовательских прав для этого - не имеет значения, что моя учетная запись Windows, с которой я вхожу на сервер с admin, или что я запускаю программу в контексте администратора. Я просто не могу добавить другого пользователя в БД.

Как решить эту проблему?

ответ

3

Вы можете изменить пользователя, с которым работает IIS: это параметр в свойствах ApplicationPool, на котором работает ваш веб-сайт.

Мы делаем это все время, поскольку это дает нам лучше контролировать доступ пользователей - что/NETWORK SERVICE учетной записи NT INSTANCE немного слишком магия моей душе ...

1

NETWORK SERVICE - специальная учетная запись. Если ваш сервер базы данных находится на другом компьютере с вашего сервера IIS, вам необходимо добавить учетную запись:

\ $ в качестве пользователя для базы данных. Поэтому, если вы находитесь на сервере IIS под названием LISA в сети SPRINGFIELD, вам необходимо предоставить доступ к базе данных SPRINGFIELD \ LISA $. Обратите внимание на знак доллара, который обозначает вашего пользователя как учетную запись машины, а не фактическое лицо.

Если ваш сервер базы данных и ваш сервер IIS являются одним и тем же, предоставите доступ к учетной записи «NT AUTHORITY \ NETWORK SERVICE». Это полное имя учетной записи. И это должно сработать.

+0

В этом проблема - мне не разрешено предоставлять доступ к учетным записям пользователей. Предложение teedyay (изменение пользователя по умолчанию в пуле приложений в IIS) решило проблему. Есть ли очевидные недостатки в этом обходном пути, о котором я должен знать? –

+0

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

+0

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

0

Используете неанглийской Operation System ?

По каким-то причинам имя учетной записи «Служба NT \ Network Service» было локализовано на других языках.
К сожалению, многие программы имеют название учетной записи, жестко закодированное по английскому имени, и не будут находить Сетевую службу при работе в чужих версиях Windows.

+1

Я на самом деле работает на шведской версии Windows Vista, но я это учитывал. Я перевел сообщение об ошибке, чтобы вы, ребята, могли его прочитать ...;) –

+0

Я не говорю об ошибке: кто-то из MS решил перевести учетные записи для входа в систему - проблема в том, что в каком-то программном обеспечении английские имена учетных записей жестко закодированы и не будут работать с локализованными версиями Windows. Помните, что они не просто переводили отображаемые имена, они также переводили имена для входа, которые используются программным обеспечением для идентификации этих учетных записей. – Sam