gpt4 book ai didi

SQL 网络接口(interface),错误 : 26 only on solution rebuild

转载 作者:行者123 更新时间:2023-12-01 01:13:36 25 4
gpt4 key购买 nike

我有一个使用 MVC4 构建的站点,该站点从数据库中获取内容,并且一切正常。

如果我然后重建解决方案并尝试刷新页面以检查我的更改,我将始终得到 SQL 网络接口(interface),错误:26 说我无法连接到服务器。

但是,如果我然后浏览到我的主页,然后返回到我正在查看的页面,它将正常工作。

有谁知道什么可能导致这个问题,因为它真的很烦人

编辑

除此之外,我发现在重建后加载 AuthorizationContext filterContext 时,它无法连接到数据库

编辑 2

与下面的尼尔一样,我发现只有在尝试访问已分配角色的页面时才会出现问题

最佳答案

我看到了完全相同的问题,可以将其追溯到浏览器中的 .ASPXAUTH session cookie。删除该 cookie,数据库错误就会消失,直到下一次重建。

如果您通过身份验证,然后重新构建项目并尝试浏览以下任一页面,则该错误会定期发生:

  • 需要身份验证
  • 调用 User 对象(例如 @if (User.IsInRole("Administrators")) )

  • 如果您在 App_Start/FilterConfig.cs 中设置了 AuthorizeAttribute 过滤器,您将在每个页面上都看到它。

    这似乎是最新补丁星期二更新后的新行为。以前,我看到奇怪的行为,我会保持登录状态,但我会失去我的滚动成员(member)资格。在最近的补丁之后,似乎 Simple Membership 在收到错误的 .ASPXAUTH cookie 时会阻塞(由于重建而无效)。

    我在 InitializeSimpleMembershipAttribute.cs 中有正确的连接字符串,但在这个实例中,就像简单成员默认为其他东西一样。

    请注意,我已将 Simple Membership 数据库从原始 (localDb) 移动到成熟的(本地)SQL Server 实例。不知道为什么这很重要,并且在所有其他情况下都可以正常工作。

    更新:

    我还尝试使连接字符串名称与 EF 上下文名称(例如“ProjectContext”)相同,理论上它默认为标准约定,但这没有任何区别。我在所有上下文类构造函数中明确标识了连接字符串名称(使用 : base("connectionString") 语法),并且 Simple Membership 能够在所有其他时间找到正确的连接字符串。

    更新 2:

    仅在访问受角色保护的页面时重建后才会出现此问题。一个简单的 [Authorize]不会触发它。你需要像 [Authorize(Role="Admin")] 这样的东西.我已经在一个新的 MVC 4 项目上复制了这个,没有其他修改,使用默认的 (localDb) 数据库。清除 cookie,同一用户可以访问 protected 内容而不会出现任何问题。我相信这是一个核心 .NET 或 MVC 错误,需要这样报告。

    关于SQL 网络接口(interface),错误 : 26 only on solution rebuild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13516789/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com