【问题标题】:Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion', when it *is* present in aspnetdb找不到存储过程“dbo.aspnet_CheckSchemaVersion”,当它*存在于 aspnetdb 中时
【发布时间】:2014-02-17 14:27:38
【问题描述】:

我有一个网站可以在我们公司的 Intranet 上正常运行,我现在正尝试将其部署在托管的 Web 服务器上。不幸的是,当用户单击登录时,它会崩溃:-

“/”应用程序中的服务器错误。找不到存储过程“dbo.aspnet_CheckSchemaVersion”。

如果我进入远程服务器的桌面,使用站点的 webconfig.cfg 文件中的用户名和密码登录 Management Studio,然后我可以打开 aspnetdb 数据库,并执行 dbo.aspnet_CheckSchemaVersion 没有任何错误消息或访问问题。

我已阅读有关此错误消息的许多其他帖子,但没有任何建议有帮助,但我是网站管理的新手,可能遗漏了一些明显的东西。

该网站使用 VB.NET 编码,并使用 Visual Studio 2012 编译。使用的第三方工具是 Fusion Charts 和 AJAX Calendar Extender。 .NET Framework 版本为 4.5。

远程服务器运行带有 IIS 版本 7 的 Windows Web Server 2008 R2。

数据库服务器是 SQL Server Express 2008 R2 的命名实例。

aspnet_Users 表中定义了五个用户,我使用 IIS 中的 .NET Users 小程序添加了这些用户。我不能再使用 IIS 中的用户管理工具,因为我不得不将站点的应用程序池升级到不支持它们的 .NET 4.0。但是我可以看到用户在那里。 aspnetdb 中没有定义角色。

有人知道我可能缺少什么吗?

【问题讨论】:

  • 您的连接字符串是否指定了数据库?如果不是,那么应用程序可能正在尝试在登录的默认数据库中执行该存储过程,而不是在 aspnet 数据库中。
  • 非常感谢就是这样。我将连接字符串中的“初始目录”更改为aspnetdb,现在可以登录了。

标签: asp.net sql-server iis


【解决方案1】:

尝试使用以下内容重新创建 ASP.net 过程:

aspnet_regsql.exe -S DBServerName -U DBLogin -P DBPassword -A all -d DBName

【讨论】:

    【解决方案2】:

    为了让这个问题不再“未回答”,我将回应 Aaron Bertrand 的评论,提问者说这是正确答案:

    您的连接字符串是否指定了数据库?如果不是,那么应用程序可能正在尝试在登录的默认数据库中执行该存储过程,而不是在 aspnet 数据库中。 – Aaron Bertrand 2 月 17 日 14:44

    非常感谢,就是这样。我将连接字符串中的“初始目录”更改为aspnetdb,现在我可以登录了。 – user3319440 Feb 17 at 16:30

    【讨论】:

      猜你喜欢
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 2014-01-26
      • 2011-07-10
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 2021-08-20
      相关资源
      最近更新 更多