我已经上传了数据库备份,它运行良好。但是由于我已经从ASP.NET配置创建了一个新用户,所以它将用户信息保存在ASPNETDB中。
我已经从MVS发布了我的数据库,并在M SQL Server Management Studio 2008中打开它来创建备份,但我还没有在其中找到ASPNETDB。
我的问题是:
-
这个数据库不是在我上传数据库时自动上传的吗?因为当我发布我的网站时,它不会出现。
-
如果没有,我如何上传ASPNETDB以便登录到我的网站,因为我正在使用对该用户的授权?
好的,我在这里做一些假设并解释它们,因为这可能有很多事情:
假设1(连接字符串问题(。在本地sql服务器上运行的数据库的用户凭据在您部署到的服务器上可能是有效的(这似乎是世界上的一种方式(尝试使用网站配置文件的远程"已发布"副本中的凭据连接到远程数据库。(连接字符串(
假设2(发布设置不正确(。当你在visualstudio中使用"发布"选项时,据我所知,你只能部署网站,但有些人说你也可以配置它来部署数据库。
我建议在您的开发机器上进行更改(例如,向aspnet数据库添加一个表(,然后使用publish查看新表是否出现在远程服务器上,如果它没有转到visualstudio中的服务器资源管理器,并通过右键单击数据库并单击"发布到提供者"来运行向导,我倾向于将整个数据库推送到一个脚本文件中,然后在远程数据库上手动运行它(似乎是最干净的选项(。
假设3(服务器上是否存在数据库(。我可能错了,但从你的说法来看,听起来你发布了应用程序,而不是数据库到服务器。。。这导致了一些漂亮的黄色服务器错误。
如果不存在,请检查数据库是否存在。。。按照asumption 2中的建议进行操作,然后手动推送数据库。
我想您正在使用Membership API。
如果您在装有SQL Server Express Edition的计算机上使用ASP.NET,则在创建第一个用户时会自动为您创建Membership API所需的基础数据存储。此功能是通过SqlMembershipProvider提供的。SqlMembershipProvider会在网站的App_Data特殊目录中自动创建一个名为ASPNETDB.MDB的新数据库。该数据库实现了完整的架构,这是存储和管理用户信息、角色信息、用户角色分配等所必需的。
你可以很容易地检查它。在你的web.config中,你应该看到这样的内容:
<connectionStrings>
<add name="ApplicationServices" connectionString="data source=.SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
所以这个数据库应该和你的网站一起上传。
如果你想在自己的数据库中创建aspnetdb或必要的表,请考虑本教程(这是一个很好的实践(。
也许你也会对这里的类似讨论感兴趣。此外,如果你仍然想在SQLServerManagementStudio中获得这个.mdf数据库,你可以在这里学习如何附加数据库。