实体框架登录失败错误

时间:2014-01-14 05:47:55

标签: .net wcf entity-framework

我在IIS中托管了我的WCF应用程序并设置了一个集成了4.0的应用程序池。我将池标识配置为网络服务。我已经检查过与此问题相关的其他帖子,但无法解决。

我得到以下异常

System.Data.Entity.Core.EntityException was unhandled by user code


HResult=-2146233087
  Message=The underlying provider failed on Open.
  Source=EntityFramework

我尝试从网络服务修改app pool到localsystem,它运行正常。 有没有猜到为什么在早先的情况下我的系统名称需要登录?

3 个答案:

答案 0 :(得分:4)

问题与实体框架无关。您无法连接到SQL Server。我会检查这些事情:

  • 确保SQL Server 启动并运行。检查正在运行的服务,看看SQL Server service是否已启动。

  • 我会检查SQL Server Configuration Manager以查看是否启用了TCP / IP通信。

  • 我会检查防火墙设置。也许是SQL Server和客户端之间存在某些问题。

  • 我会检查来自同一客户端的另一个应用程序是否可以连接到同一台服务器。然后我会检查连接字符串差异

  • 如果以上所有内容都正常播放,那么我将检查特定数据库上特定SQL Server的权限,以查找我尝试连接的帐户。允许每个人使用此数据库作为第一步,以检查它是否是帐户权限问题。 使用此特定配置(Integrated Security=true)表示您的用户名和密码被忽略。如果您想使用特定的用户名和密码访问SQL Server,则应省略特定的语句连接字符串,或将其设置为false。

您可以查看this connection strings example post

希望我帮忙!

答案 1 :(得分:3)

在连接字符串中,您将Integrated Security设置为“true”。这很可能导致忽略用户名和密码。运行App Pool的标识将用于尝试登录。

解决此问题的两种方法:

  1. 将Integrated Security设置为“false”。

  2. 使用帐户(连接字符串中的帐户或创建的帐户)运行应用程序池,并将Integrated Security保留为“true”。为此,运行应用程序池的帐户将需要登录权限(以及任何其他权限,如EXECUTE或SELECT,如果需要)到SQL服务器实例。

  3. 我们在使用EF和良好的普通旧ADO.NET时都这样做。我们创建用于运行App Pool的服务帐户,并为服务帐户授予必要的登录和其他权限。您还必须启用SQL Server以接受Windows身份验证。

答案 2 :(得分:0)

这是个愚蠢的错误!!我的SQL服务器登录中没有NT AUTHORITY\NETWORK SERVICE帐户。我已经添加了所需的权限。它现在适用于我在连接字符串中的Network serviceIntegrated security=true的应用池配置。

相关问题