【问题标题】:SqlException "Invalid User Account" thrown by application应用程序抛出 SqlException“无效的用户帐户”
【发布时间】:2016-07-04 05:04:55
【问题描述】:

我开发了一个连接到 SQL Server 2012 实例的网站。这在我的开发环境中运行良好。但是,在尝试部署到生产环境时,页面返回以下错误:

“/theapp”应用程序中的服务器错误。
无效的用户帐户
说明:在执行当前 Web 请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息
异常详细信息:System.Data.SqlClient.SqlException:用户帐户无效

screen shot of stack trace

我很难在 Internet 上找到任何有关此的文档;有没有人知道我可以从哪里开始寻找解决方案?

非常感谢!

更新(2016 年 4 月 7 日下午 3:18):服务帐户是对数据库具有正确权限的域帐户。此外,另一个网站使用同一个帐户连接到同一个数据库,这工作正常。

更新(2016 年 5 月 7 日上午 10:16):我能想到的唯一事情是与应用程序中使用 LINQ to SQL 查询有关。这听起来像是一个可能的原因吗?

【问题讨论】:

    标签: asp.net sql-server-2012 sqlclient


    【解决方案1】:

    正如错误所说,您用于连接 sql server 的凭据不正确。

    确保您使用的是正确的凭据,即。连接字符串中的用户名和密码。您可以通过从这些凭据登录到 sql server 实例来检查它。

    如果您使用集成安全,即windows身份验证,请验证用户是否已授予sql权限。

    【讨论】:

    • 感谢您的快速回复。我可以确认我使用的帐户对 SQL 数据库具有权限,因为我能够在 SQL Server Management Studio 中使用这些凭据直接登录。此外,我们使用同一个帐户也可以正常运行另一个网站。
    【解决方案2】:

    当您通过网站通过 Windows 身份验证时,您的应用程序池的身份就是提供的用户凭据。确保您的站点应用程序池设置为使用与您在应用程序池标识中预期的用户相同的用户。此外,请确保在连接字符串中将集成安全设置为 SSPI,而不是 true。

    【讨论】:

    • 感谢您的建议。是的,我使用域帐户作为应用程序池标识,并且该帐户具有授予 SQL Server 数据库的权限。事实上,我已经使用了多个已知良好的帐户,但都仍然出现相同的错误(但我已经验证,当我在具有不同应用程序池的不同应用程序上使用它们时,它们都可以正常工作)。此外,我确保在我的 web.config 中使用“Integrated Security=SSPI”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    相关资源
    最近更新 更多