正在做一个asp.net的网站,网站中用到了asp.net的基于角色认证,其会自动产生一个aspnetdb的数据库,我的网站在本地是一切正常的。当上传到租用的虚拟主机当点击登录时就会出现找不到存储过程 'dbo.aspnet_CheckSchemaVersion'的问题(我用数据库管理查看确实有这个存储过程)。
web.config配置
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Data Source=我的数据库ip地址;Initial Catalog=sql2005demo;User ID=sql2005demo;Password=west263demo;" providerName="System.Data.SqlClient" /></connectionStrings>
补充由于数据库和主机的限制。主机上是无数据库支持的只能通过远程连接数据库,远程数据库只能通过附加的方式将在本地建好的数据库导入进去...因此尝试用asp.net自带的aspnetreg_sql.exe不能在网络数据库中新建数据库。
web.config配置
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Data Source=我的数据库ip地址;Initial Catalog=sql2005demo;User ID=sql2005demo;Password=west263demo;" providerName="System.Data.SqlClient" /></connectionStrings>
补充由于数据库和主机的限制。主机上是无数据库支持的只能通过远程连接数据库,远程数据库只能通过附加的方式将在本地建好的数据库导入进去...因此尝试用asp.net自带的aspnetreg_sql.exe不能在网络数据库中新建数据库。
declare cur cursor for
select name from dbname..sysusers where sid>1
open cur
fetch next from cur into @usr
while @@fetch_status=0
begin
exec sp_change_users_login 'auto_fix',@usr
fetch next from cur into @usr
end
close cur
deallocate cur
aspnet_regsql -sqlexportonly aspnet.sql -A all -d sql2005demo
(sql2005demo是要导入的数据库名)
把生成的aspnet.sql文件上传到服务上的web根目录下再新建一个aspx页面,在Page_Load中加上下面这段:protected void Page_Load(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection("Data Source=我的数据库ip地址;Initial Catalog=sql2005demo;User ID=sql2005demo;Password=west263demo;"))
{
SqlCommand cmd = new SqlCommand("", conn);
conn.Open(); string sql = File.ReadAllText(MapPath("~/aspnet.sql"));
foreach (string s in Regex.Split(sql, @"^GO\s*$", RegexOptions.Multiline))
{
cmd.CommandText = s;
cmd.ExecuteNonQuery();
}
}
Response.Write("完成,可以删除本页面了");
}编译后上传这个aspx页面到服务器,输入这个页面的url地址,就会执行导入数据
这个链接很类似 哪位牛人帮忙解释一下也行