无法打开数据库。用户“ NT AUTHORITY \ NETWORK SERVICE”的登录失败。

问题描述 投票:0回答:2

我正在尝试在IIS上部署我的第一个ASP.NET应用程序,但是每当我连接到数据库时,我都会遇到一个问题。连接到数据库可以在Visual Studio上正常运行该应用程序。

我不断收到以下内容:

SqlException:无法打开登录请求的数据库“ RazorPagesMovieContext-ae4522b8-14f6-4dd9-9e71-fb8009d965ad”。登录失败。

用户'NT AUTHORITY \ NETWORK SERVICE'登录失败。

我的连接字符串如下所示:

<add name="LocalSqlServer" 
     connectionString="Server=(localdb)\MSSQLLocalDB;Database=RazorPagesMovieContext-ae4522b8-14f6-4dd9-9e71-fb8009d965ad;Integrated Security=true" 
     providerName="System.Data.SqlClient" />

[就像本文中的文章所述:https://docs.microsoft.com/en-us/archive/blogs/sqlexpress/using-localdb-with-full-iis-part-2-instance-ownership我已经尝试了方法的#1“以Windows用户身份运行IIS”和#2“使用LocalDB共享实例”,但是没有任何运气,所以我转而尝试使用NetworkService而不是我遇到相同错误的地方是ApplicationPoolIdentity(使用ApplicationPoolIdentity失败,并带有

仅在不同用户下登录用户'IIS APPPOOL.NET v4.5'“)失败。

[在我的SQL Server Management Studio中,我创建了一个新用户,名称为“ NT AUTHORITY \ NETWORK SERVICE”,并确保已授予数据库“ db owner”权限,并勾选了所有服务器角色。大多数答案都指出授予权限,但这仍然无法解决我的问题。

任何见解将不胜感激

asp.net sql-server iis networking localdb
2个回答
0
投票

ConnectionString中的问题,您没有用于登录数据库的任何用户内容CS。

首先您必须为数据库添加用户,然后设置您的connectionString

两个选项

  1. 在数据库上创建新用户,然后该用户为RazorPagesMovieContext-ae4522b8-14f6-4dd9-9e71-fb8009d965ad]设置访问权限] [Create User
  2. 启用sa
  3. 用户,默认情况下禁用sa用户Enable Sa user

    最终更改连接字符串

如果使用选项2

Server=(localdb)\MSSQLLocalDB;Database=RazorPagesMovieContext-ae4522b8-14f6-4dd9-9e71-fb8009d965ad; user=sa; password=yourPassword

**启用**


0
投票

以上链接中的解决方案很有用,Run IIS as our Windows userUse LocalDB shared instance是解决此问题的一种方法。我在这里只是为了讨论文档中提供的方法。在解决方案1中,首先,我们应确保VS运行正常,因为我们应确保Database实例也正常运行。然后将应用程序池标识更改为运行Visual Studio的Windows帐户。enter image description here在solution2中,由于Visual Studio2017更新了本地数据库实例的名称,因此我们应相应地更改命令。

© www.soinside.com 2019 - 2024. All rights reserved.