SqlException:使用LocalSystem作为标识时,对象名称dbo。<tablename>无效

时间:2016-01-24 21:12:29

标签: asp.net sql-server iis asp.net-web-api localhost

我在我的本地IIS(7.0)上部署了一个asp.net web api,但我无法访问数据库。

当身份(在流程模型下)设置为LocalSystem时,API将返回此异常:

  

无效的对象名称'dbo.tablename'

如果我将标识设置为ApplicationPoolIdentity,API将返回此异常:

  

无法打开登录请求的数据库“dbname”。登录失败。    用户'IIS APPPOOL \ ASP.NET v4.0'登录失败。

尝试解决方案:

  1. Login failed for user 'IIS APPPOOL\ASP.NET v4.0'

  2. https://www.youtube.com/watch?v=18-zatWd68s

  3. 将文件夹和.mdf文件的权限添加到“ASP.NET v4.0”

  4. https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-2-instance-ownership/

  5. 其他相关信息:

    连接字符串(在web.config

    <add name="DbContext" 
         connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=[dbname];Trusted_Connection=Yes;" 
         providerName="System.Data.SqlClient" />
    

    我也尝试使用Visual Studio使用Visual Studio运行应用程序,它工作正常。

1 个答案:

答案 0 :(得分:0)

您已经看过https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-2-instance-ownership/

它说你基本上有3个选项,

  • 运行IIS作为您的ID(坏主意),
  • 将localdb作为共享实例运行,或
  • 使用SQL Express

后者可能是最好的建议。