【问题标题】:C# ASP.net MVC database questionsC# ASP.net MVC 数据库问题
【发布时间】:2010-02-22 22:41:37
【问题描述】:

我正在尝试使用 C# ASP.net MVC 开发一个网站。这是我第一次使用 Visual Studio、C# 和 ASP.net,所以我有很多东西要学,但到目前为止还不错。 到目前为止...我启动了一个 C# ASP.net MVC 项目并通过转到数据库资源管理器并单击“添加连接”来添加一个数据库。然后我做了一些标准的 CRUD 控制器和视图。

我正处于想要实施用户身份验证的阶段。我在这里有点困惑。我正在尝试制作自定义会员资格提供者。所以我用正确的连接字符串等将它添加到我的 web.config 文件中。 当我运行项目并去注册时,我得到一个错误。 “找不到存储过程 'dbo.aspnet_CheckSchemaVersion'。”

通过搜索,我看到很多人都有这个问题,他们总是参考他们的主机。人们说这 (http://weblogs.asp.net/scottgu/archive/2005/08/25/423703.aspx) 是他们的解决方案,但是当我尝试选择一个数据库时,我得到了一个错误。甚至不确定我的服务器名称。 所以此时我想知道,我设置的数据库正确吗?

编辑

添加几张图片以准确显示我在做什么。这是 aspnet_regsql.exe:

这是带有连接字符串的提供程序,取自给定链接之一的示例。 这是我的自定义提供程序,其连接字符串指向最后一张图像。

这是我运行项目并转到默认项目帐户注册操作时的屏幕截图:

最后,这是我提交时的错误屏幕

编辑

另一个更新..

我整理了一些东西,但我不确定它是否正确。现在页面加载时出现错误:“无效的对象名称'dbo.Tag'”

【问题讨论】:

  • 您是否已运行 aspnet_regsql 程序在您的数据库中创建表和存储过程?
  • 这里没有具体回答您的问题,因为我不知道是什么导致了您的错误,但是如果您是 C# Asp.net MVC 的新手,那么我强烈建议您构建 Nerd Dinner 示例作为您的第一个应用程序。它是一个非常深入的示例,并且可以在一天内完成。这可能是学习基础知识的最佳方式。 nerddinner.codeplex.com 有一份 PDF 教程。
  • @tvan 我认为他正在尝试创建自定义会员提供程序。不确定是否需要默认的 aspnet 架构。
  • @tvan 运行该程序,第二个屏幕询问“服务器”和“数据库”。使用默认设置运行并进入下一个屏幕,我的服务器名称是我的笔记本电脑的名称,我的数据库是“aspnetdb”。然后下一个按钮尝试连接到它,我认为我收到一条错误消息:“System.Web.HttpException Unable to connect to SQL Server database --> System.Data.SqlClient.SqlClient.SqlException”
  • aspnetdb 是否位于您的 App_Data 文件夹中?

标签: c# sql asp.net-mvc database visual-studio


【解决方案1】:

为了解决这个问题,您唯一需要做的就是创建一个application services DB。您可以通过从 Visual Studio 命令提示符运行以下命令来实现此目的

aspnet_regsql

无论如何,您的“自定义提供程序”似乎没有为您的数据库使用自定义结构,这可能是您没想到会出现此错误的原因。

如果您使用默认实现,则可以使用 ASP .NET 配置访问用户管理,该配置位于 Visual Studio 的项目菜单中。

默认实现使用以下conn字符串关键字

LocalSqlServer

实现成员资格提供程序的方法有很多种。我的猜测是这个 conn 字符串可能没有指向你的 aspnet 服务数据库,你可以做这样的事情来为这个数据库指定一个自定义位置

<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\aspnetdb.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

我就这个话题发表了一篇博文:How to use MembershipRole Provider and when to use custom implementations

【讨论】:

  • 我的用户名和密码是我的 Windows 用户名和密码?
  • 不,我更新了答案。现在 connstring 使用集成身份验证附加位于 App_Data 上的 mdf。
【解决方案2】:

很难从您的帖子中找出任何内容。

但是当我尝试选择一个数据库时,我得到了 一个错误。

您可以在外围应用配置或 Sql Server 配置管理器中检查您的服务器名称。如果您安装了 Visual Studio,它可能是 YOUR_MACHINE_NAME\SQLEXPRESS。您可以使用 Windows 身份验证连接到它。您也可以改写 localhost,1433,但这需要先启用 TCP/IP(默认情况下禁用)并首先设置端口号(在大多数情况下已设置)。

【讨论】:

  • 谢谢,没有 \SQLEXPRESS,我无法用 aspnet_regsql.exe 做任何事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-09
相关资源
最近更新 更多