使用不存在的用户名登录IIS到SQL Server

本文关键字:IIS SQL Server 登录 不存在 用户 | 更新日期: 2023-09-27 18:12:27

我在编译/调试我的web应用程序时没有任何问题,但是当我试图从我的IIS服务器运行它时,我得到这个错误:

<>之前"/"应用程序中的服务器错误。用户"MLABS'STUDENT-006$"登录失败。描述:在执行当前web请求期间发生了未处理的异常。请查看堆栈跟踪以获得有关错误及其在代码中的起源位置的更多信息。异常详细信息:System.Data.SqlClient.SqlException:登录用户'MLABS'STUDENT-006$'失败。源错误:在执行当前web请求期间生成了一个未处理的异常。有关异常的来源和位置的信息可以使用下面的异常堆栈跟踪来识别。堆栈跟踪:[SqlException (0x80131904):用户'MLABS'STUDENT-006$'登录失败。]System.Data.ProviderBase.DbConnectionPool。GetConnection(DbConnection owningObject) +578System.Data.ProviderBase.DbConnectionFactory。GetConnection(DbConnection owningConnection) +88System.Data.ProviderBase.DbConnectionClosed。OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +6275911System.Data.SqlClient.SqlConnection.Open () + 258radargraphinsertdll . lomdll. get_last_lom () in c:'users'agordon'documents'visual studio 2008'projects'lomdb'enterdata'radargraphdll'radargraphinsertdll'lomdll.cs:212EnterData.DataEntry.LOMForm。Page_Load(Object sender, EventArgs e) in C:'Users'agordon'Documents'Visual Studio 2008'Projects'lomdb'EnterData'DataEntry'LOMForm.aspx.cs:20System.Web.Util.CalliHelper。EventArgFunctionCaller(IntPtr fp, Object 0, Object t, EventArgs e) +25System.Web.Util.CalliEventHandlerDelegateProxy。回调(对象发送方,EventArgs e) +42System.Web.UI.Control。OnLoad(EventArgs e) +132System.Web.UI.Control.LoadRecursive () + 66System.Web.UI.Page。ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428版本信息:Microsoft .NET Framework版本:2.0.50727.5448;ASP。净版:2.0.50727.5420之前

STUDENT-006是我的电脑名,不是我的用户名!我不明白为什么它试图用我的计算机名登录。

当应用程序运行时,它应该立即从数据库中提取数据。我启用了Windows身份验证,当我从dubugger运行时,它可以正常工作,但是当我尝试编译时,我得到了上面的错误

我做错了什么?

使用不存在的用户名登录IIS到SQL Server

MLABS'STUDENT-006$为IIS应用程序池运行的用户名。您可以更改IIS中的应用程序池用户

  1. 打开IIS管理器。有关打开IIS管理器的信息,请参见打开IIS管理器(IIS 7)。

  2. 在Connections窗格中展开服务器节点,单击Application Pools。

  3. 在"应用池"页面,选择需要指定身份的应用池,然后单击"高级"

  4. 对于Identity属性,单击…

  5. 如果您想使用内置帐号,请选择"内置帐号"选项,并在列表中选择一个帐号。

  6. 如果要使用自定义身份,请选择自定义帐户选项并单击"设置"打开"设置凭据"对话框。然后输入在"用户名"文本框中输入自定义帐户名,并输入密码在"密码"文本框中,在"确认密码"中重新键入密码文本框,然后单击确定。

  7. 单击OK关闭应用程序池标识对话框。

或者可以在web.config中模拟。

<configuration>
  <system.web>
    <identity impersonate="true"/>
  </system.web>
</configuration>

MLABS'STUDENT-006$是本地"NETWORK SERVICE"帐户在连接到其他机器时的样子,以及服务器如何在Active Directory中注册。

这是IIS下运行的Application Pool,所以它连接到SQL Server。

我建议使用一个域帐户,特别是对于