#c# #asp.net #sql-server #windows #iis
#c# #asp.net #sql-сервер #Windows #iis
Вопрос:
у меня вообще нет проблем с компиляцией / отладкой моего веб-приложения, но когда я пытаюсь запустить его со своего сервера IIS, я получаю эту ошибку:
Ошибка сервера в приложении '/'. Не удалось войти в систему для пользователя 'MLABS STUDENT-006 $'. Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде. Сведения об исключении: System.Data.SqlClient.SQLException: ошибка входа в систему для пользователя 'MLABS STUDENT-006 $'. Ошибка источника: Необработанное исключение было сгенерировано во время выполнения текущего веб-запроса. Информация о происхождении и местоположении исключения может быть идентифицирована с помощью трассировки стека исключений, приведенной ниже. Трассировка стека: [Исключение SQLException (0x80131904): ошибка входа в систему для пользователя 'MLABS STUDENT-006 $'.] Система.Данные.База поставщиков.DbConnectionPool.getConnection(DbConnection owningObject) 578 System.Data.База поставщиков.DbConnectionFactory.getConnection(DbConnection owningConnection) 88 System.Data.База поставщиков.DbConnectionClosed.openConnection(DbConnection Outconnection, DbConnectionFactory ConnectionFactory) 6275911 Система.Данные.SqlClient.SqlConnection.Открыть() 258 RadarGraphInsertDLL.LOMDLL.Get_Last_Lom() в c:usersagordondocumentsvisual studio 2008projectslomdbenterdataradargraphdllradargraphinsertdlllomdll.cs:212 Введите данные.Ввод данных.LOMForm.Page_Load(отправитель объекта, EventArgs e) в C:UsersagordonDocumentsVisual Studio 2008Проекты lomdbEnterDataDataEntryLOMForm.aspx.cs:20 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, объект o, Объект t, EventArgs e) 25 System.Web.Util.CalliEventHandlerDelegateProxy.Обратный вызов (отправитель объекта, EventArgs e) 42 System.Web.UI.Control.Загрузка (EventArgs e) 132 System.Web.UI.Control.LoadRecursive() 66 System.Web.UI.Page.ProcessRequestMain(логические includeStagesBeforeAsyncPoint, логические includeStagesAfterAsyncPoint) 2428 Информация о версии: Microsoft .NET Framework Версия: 2.0.50727.5448; ASP.NET Версия: 2.0.50727.5420
STUDENT-006 — это имя моего компьютера, это не мое имя пользователя! я не понимаю, почему он пытается войти в систему с именем моего компьютера.
при запуске приложения оно немедленно должно извлекать данные из базы данных. у меня включена проверка подлинности Windows, и она работает без проблем при запуске из dubugger, но при попытке компиляции я получаю указанную выше ошибку
что я делаю не так?
Ответ №1:
MLABSSTUDENT-006$
это имя пользователя, с которым работает пул приложений IIS. Вы либо меняете пользователя пула приложений в IIS,
Откройте диспетчер IIS. Для получения информации об открытии диспетчера IIS см. раздел Открыть диспетчер IIS (IIS 7).
На панели подключения разверните узел сервера и щелкните Пулы приложений.
На странице Пулы приложений выберите пул приложений, для которого вы хотите указать идентификатор, а затем нажмите Дополнительные параметры на панели Действия.
Для свойства Identity щелкните … кнопка для открытия диалогового окна идентификации пула приложений.
Если вы хотите использовать встроенную учетную запись, выберите опцию встроенной учетной записи и выберите учетную запись из списка.
Если вы хотите использовать пользовательское удостоверение, выберите параметр Пользовательская учетная запись и нажмите Установить, чтобы открыть диалоговое окно Установить учетные данные. Затем введите имя пользовательской учетной записи в текстовом поле Имя пользователя, введите пароль в текстовом поле Пароль, повторно введите пароль в текстовом поле Подтверждение пароля, а затем нажмите кнопку ОК.
Нажмите кнопку ОК, чтобы закрыть диалоговое окно идентификации пула приложений.
или вы можете выдать себя за другого в web.config.
<configuration>
<system.web>
<identity impersonate="true"/>
</system.web>
</configuration>
Комментарии:
1. тем не менее, почему это не позволяет использовать это имя пользователя там?
2. Вы можете указать учетную запись, если вам нужно
<identity impersonate="true" userName="contosoJane" password="********" />
, в противном случае она будет использовать учетную запись зарегистрированного пользователя.
Ответ №2:
MLABS STUDENT-006 $ — это учетная запись, на которую похожа учетная запись локальной «СЕТЕВОЙ СЛУЖБЫ» при подключении к другим машинам и как сервер зарегистрирован в Active Directory.
Это то, под чем работает пул приложений в IIS, поэтому он подключается к SQL Server.
Я бы предложил использовать учетную запись домена специально для этого