2014-02-14 50 views
5

我试图给一个ASP NET应用程序访问数据库(这些只是测试而非生产)。无论我做什么,都会收到“用户IIS APPPOOL DefaultAppPool登录失败”

这是我第一次尝试,在这个网络中,并与VS2012的SQL Server 2012 Express中,Windows 7的前

我做了什么我没有完成它,:

  • 我升级了我的Sql Server 2012 Express,因为VS2012首次安装的版本是不允许从IIS访问的版本
  • 我发现我必须配置SQL Server 2012 Express才能接受远程连接,好博客,我发现 here
  • 在2012 SSME,我添加了一个新的登录所有数据库NT AUTHORITY \ NETWORKSERVICE(我浏览了一下,发现“SERVICIO德红”,这代表NETWORKSERVICE,因此它实际上是NT AUTHORITY \ SERVICIO德红
  • 我设置DBO作为此登录
  • 在登录属性的默认模式,在用户映射,我检查了我的数据库(我叫MiniNorthwind),然后在数据库角色检查的db_datareader和db_datawriter MiniNorthwind的会员号码
  • 在Internet信息服务管理器我检查了默认应用身份ApplicationPoolIdentity(这是默认设置)

但我仍然得到一个错误,指出用户登录失败IIS APPPOOL \默认应用,如果我将DefaultAppPool身份更改为NetworkService,然后错误更改为用户登录失败NT AUTHORITY \ Servicio de red

我不知道还有什么办法。请在这里需要帮助。

拉斐尔

+0

我的连接字符串设置为集成安全性,我想保持这种方式。我也想使用deffault应用程序池,我认为这是可能的。 – Rafael

+0

我在连接到网络的笔记本电脑上完成了这一切,它安装了Win7 Ultimate x64 – Rafael

回答

3

在IIS管理器中设置默认应用的身份为网络服务。尽管它有效,但您应该尝试使其与AppPoolIdentity配合使用,因为Windows 7试图使其更安全

0

更改您的连接字符串。

例如:

//< add name="CS" connectionString="server=.;database=JackDB;user id=sa;password=ya;"> 

这解决了错误。

4

应用程序池 - >您在应用程序中使用的应用程序池 - >单击它,然后单击面板中的“高级设置”。查找“身份”属性并将其更改为本地系统。

0

您可以从IIS7 - >应用程序池 - >高级设置中更改ApplicationPoolIdentity。

Under ApplicationPoolIdentity你会发现本地系统。这将使您的应用程序在NT AUTHORITY\SYSTEM下运行,默认情况下该数据库是现有的数据库登录名。

欲了解更多信息请看此链接: https://stackoverflow.com/a/8853386/1676736

0

就我而言,我不得不改变我connectionString来自:

<add name="DatabaseName" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=HrAndPayroll;Integrated Security=True" providerName="System.Data.SqlClient" /> 

到:

<add name="DatabaseName" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database.mdf;Initial Catalog=HrAndPayroll;Integrated Security=True" providerName="System.Data.SqlClient" /> 

我部署后,我项目,我的connectionString得到了修改,因此删除AttachDbFilename=|DataDirectory|\Database.mdf,所以我不得不给我的数据链接基地明确在connectionString

相关问题