2006年12月12日

2006年11月20日

网站用到了membership/role/profile,但是我不能够自定义数据库。

关闭了防火墙,SQL SERVER 2005用混合登陆,并打开了管道。提到的几个数据库都用了aspnet_regsql注册过

系统是:2003+.net 2.0+SQL SERVER 2005企业版+ IIS 6.0
以下情况均关闭了防火墙,SQL SERVER 2005用混合登陆,并打开了管道。提到的几个数据库都用了aspnet_regsql注册过

IIS里的 asp.net全局设置 -配置设置里 - 常规连接是:
data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true

因为我装的是企业版,没有SQLEXPRESS这个实例,我改成
data source=server1;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
这样也不行。

因为我的目的是想为profile/membership/role配置数据库,所以又指定了一个特定的数据库,并用SA登陆,代码如下:
data source=server1;database=MemberSystem;User ID=sa;Password=sa

这样网站就能正常使用“asp.net管理工具”

这个web.config只有在全部配置里是:data source=server1;database=MemberSystem;User ID=sa;Password=sa
时才可以用,不能自定义数据库
但是我这个服务器可能有几个网站,其他的网站要用到其他的数据库,这应该怎么办?

网站管理工具 安全里提示是:
选定的数据存储区出现问题,原因可能是服务器名称或凭据无效,或者权限不足。也可能是未启用角色管理器功能造成的。请单击下面的按钮,以重定向到可以选择新数据存储区的页。

下面的消息可能会有助于诊断问题: 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: 共享内存提供程序, error: 0 - 管道的另一端上无任何进程。)


问题简单点说就是:一定要在全局配置里设置profile/membership/role用到的数据库,不能在web.config里自定义,全局设置一改,就不能运行。

附web.config代码:

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  
<appSettings/>
  
<connectionStrings>
    
<add name="MemberSystemConn" connectionString="Data Source=EVILA;Initial Catalog=MemberSystem;User ID=sa" providerName="System.Data.SqlClient"/>
  
</connectionStrings>

  
<system.web>
    
<anonymousIdentification enabled="false"/>
    
<authentication mode="Forms">
      
<forms name="MemberSystem" loginUrl="~/Members/Login.aspx" defaultUrl="~/Default.aspx"/>
    
</authentication>
    
<authorization>
      
<!--<deny users="?"/>-->
    
</authorization>
    
<profile defaultProvider="defaultProvide">
      
<properties>
        
<add name="QQ"/>
        
<add name="MSN"/>
        
<add name="Phone"/>
        
<add name="Mobile"/>
        
<add name="Birthday" type="System.DateTime"/>
        
<add name="Address"/>
        
<add name="Postcode"/>
        
<add name="City"/>
        
<add name="Country"/>
        
<add name="Face"/>
        
<add name="Note"/>
        
<add name="Homesite"/>
      
</properties>
      
<providers>
        
<add name="defaultProvide" connectionStringName="MemberSystemConn" type="System.Web.Profile.SqlProfileProvider" applicationName="/" />
      
</providers>
    
</profile>

    
<membership>
      
<providers>
        
<add connectionStringName="MemberSystemConn" enablePasswordRetrieval="false"
          requiresUniqueEmail
="true" applicationName="/" minRequiredPasswordLength="6"
          minRequiredNonalphanumericCharacters
="0" name="defaultProvide"
          type
="System.Web.Security.SqlMembershipProvider" />
      
</providers>
    
</membership>

    
<roleManager cacheRolesInCookie="true">
      
<providers>
        
<add connectionStringName="MemberSystemConn" applicationName="/"
          name
="defaultProvide" type="System.Web.Security.SqlRoleProvider" />
      
</providers>
    
</roleManager>
    
<compilation debug="true"/>
  
</system.web>
</configuration>

谢谢各位了
posted @ 2006-11-20 14:35 虾米 阅读(942) | 评论 (1)编辑