我上传了我的数据库备份,它运行正常。但是因为我从ASP.NET配置创建了一个新用户,所以它将用户信息保存在ASPNETDB中。
我已经从MVS发布了我的数据库并在M SQL Server Management Studio 2008中打开它来创建备份,但我还没有找到ASPNETDB。
我的问题是:
当我上传数据库时,这个数据库不会自动上传吗?当我发布我的网站时,它不会出现。
如果没有,我如何上传ASPNETDB以便我可以登录我的网站,因为我正在使用该用户的授权?
答案 0 :(得分:0)
我想您正在使用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或必要的表(这是一个很好的实践),请考虑这个tutorial。
也许你也会对类似的讨论here感兴趣。此外,如果您仍希望在SQL Server Management Studio中获取此.mdf数据库,则可以了解如何附加数据库here。
答案 1 :(得分:0)
好的,我会在这里做一些假设并解释它们,因为这可能是很多事情:
假设1(连接字符串问题)。在本地sql server上运行的数据库的用户凭据可能在您部署到的服务器上有效(似乎是世界的方式)尝试使用远程“已发布”中的凭据连接到远程数据库网站配置文件的副本。 (连接字符串)
假设2(发布设置不正确)。当您在visual studio中使用“发布”选项时,您只根据我的知识部署网站,但有些人说您可以将其配置为部署数据库。
我建议在您的开发机器上进行更改(例如,在aspnet数据库中添加一个表),然后使用publish查看该新表是否出现在远程服务器上,如果它没有在视觉上转到服务器资源管理器通过右键单击数据库并单击“发布到提供程序”来运行向导,我倾向于将整个数据库推送到脚本文件,然后在远程数据库上手动运行(似乎是最干净的选项)。
假设3(数据库甚至存在于服务器上)。我可能在这里错了,但从你所说的听起来你发布应用程序而不是数据库到服务器......这会导致一些漂亮的黄色服务器错误。
如果没有,请检查数据库是否存在...按照asumption 2中的建议进行操作并手动推送数据库。