我使用了vs2005 的用户管理的控件,使用了aspnetdb,在vs2005中调试是可以登录的,但是发布出来之后,用户就无法登录了,感觉是连接不上aspnetdb.mdf,但是我用来作放内容的其它数据库可以连接的上,怎么回事? 一样的用户名密码,在vs2005调试时是可以用的,但是发布出去放在IIS里面就用不了了

解决方案 »

  1.   

    那个控件是建立在2.0的基础上的,你在iis 里同样要修改为2.0,就ok了
      

  2.   

    IIS里面已经设置了2.0了啊
    感觉是连接不上aspnetdb.mdf啊,
      

  3.   

    为什么一定要用aspnetdb库呢?
    实现自己的MemberShip不是更好么?
      

  4.   

    1. 检查2005自带的aspnetdb是否随程序一起上传到服务器,并且文件位置保持一致。
    2. aspnetdb是靠membership,role,以及profile的provider读取的,查看程序的webconfig以及服务器的webconfig以及machine.config的provider的连接字符串是否改变,如果你用的是默认自带的express的aspnetdb,连接字符串应该是LocalSqlServer的,而这个默认的连接是
    <add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
      

  5.   

    1.我在本机测试都不行,直接在IIS里面打开.
    2.membership,role的provider我都在web.config里面自定义了.在调试的时候是可用的.在IIS管理的asp配置里面也可以看到是使用了我自定义的provider
      

  6.   

    你用的是什么数据库?是sql2000吗 ?
    如果是sql2000就连不上了.
      

  7.   

    本地都不行?那你怎么调试成功的啊?
    2005express是默认的数据库连接,拽了登陆控件那个mdf就有啊,而且默认情况下provider里面的connectstring也是指向这个aspnetdb.mdf文件的,你从vs2005的‘网站’--‘asp.net配置’点里面的‘安全’看看能不能打开页面,如果报错的话就是你配置文件或者什么出错连接不到aspnet的数据库了
      

  8.   

    调试是可以成功的,我都做了几天了,才把这个用户搞好的,可以登录,角色.......asp.net配置里面的安全可以打开可以选择数据库提供源,可以看到自定义的provider,总之在vs2005是什么事情都没有,可以登录,可以新建用户,可以找回密码,,可以修改密码....总之都可以...就是放在IIS上面就不行了/......
      

  9.   

    我操~~!!!!!
    我把creatuser的页面放出来了,重新新建了一个用户,居然又可以用了,怎么回事!!!
    难道发布的时候aspnetdb是会自动清空的???
    还是保存在根本就是在另外一个数据库上?有没有可以查看mdf数据库的工具???
      

  10.   

    Membership等等的在DB中有一个applicationname字段,此字段保存的是项目一串唯一标识,也就是说如果你一台机器有2个程序都用到了这个aspnetdb,那么db中会用不同的applicationname来标识他们以调用不同程序的数据。
    你这情况可能就是放到iis后applicationname变了,因此直接导致的就是iis运行的时候不会读取以前创建好的所有的Membership的那些信息,至于为什么会变化,就不太清楚了,applicationname可以在web.config的provider里面去设定
      

  11.   

    谢谢楼上的耗眼兄弟,呵呵
    membership表里面确实有两个相同的用户名,可能我之前是用文件系统的,现在换成虚拟目录的关系吧,
    以后就不知道怎么办了,每次都要重新建一个用户