正在做一个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不能在网络数据库中新建数据库。

解决方案 »

  1.   

     重新建立帐户 declare   @usr   sysname   
      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   
      

  2.   

    先用命令行生成script脚本文件:
    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地址,就会执行导入数据
      

  3.   

    http://topic.csdn.net/u/20070601/09/7af9c4d3-f2eb-4cc1-a0d5-195ba01ea192.html
    这个链接很类似 哪位牛人帮忙解释一下也行