2008-12-05 33 views
6

啓動時,需要使用會員提供的,我發現我無法連接到包含會員數據庫遠程數據庫的新項目。設置默認AspNetSqlProvider指向遠程數據庫

我跑aspnet_regsql,並能在遠程服務器上創建的會員數據庫,但是當我去ASPNET配置(卡西尼開發服務器)將無法連接到遠程服務器。

回答

17

經過多次搜索,我發現在machine.config(c:\ windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG)中指定的默認Membership Provider始終指向在本地主機上運行的SQL Server。

而不是修改machine.config中有一種方法來設置它在項目的web.config:

1)安裝在連接字符串到遠程數據庫

<connectionStrings> 
     <add name="aspnet_membership" connectionString="<your_connection_string>"/> 
    </connectionStrings> 

2)在<system.web>重新定義默認提供者:

<membership> 
    <providers> 
     <remove name="AspNetSqlMembershipProvider"/> 
     <add name="AspNetSqlMembershipProvider" 
      type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
      connectionStringName="aspnet_membership" 
      enablePasswordRetrieval="false" 
      enablePasswordReset="true" 
      requiresQuestionAndAnswer="true" 
      applicationName="/" 
      requiresUniqueEmail="false" 
      passwordFormat="Hashed" 
      maxInvalidPasswordAttempts="5" 
      minRequiredPasswordLength="7" 
      minRequiredNonalphanumericCharacters="1" 
      passwordAttemptWindow="10" 
      passwordStrengthRegularExpression=""/> 
    </providers> 
    </membership> 

<remove name="AspNetSqlMembershipProvider"/>是關鍵!所有其他鍵/值直接從machine.config中

+0

你jdiaz,是男人!我一直試圖讓這個工作在非默認的SQLExpress實例上工作數小時。現在效果很好。再次感謝! – knslyr 2010-10-19 00:54:12

0

在這裏拍攝是解決方案:

第1步:啓動Visual Studio的命令提示符下 類型:aspnet_regsql 指定服務器:如果SQLEXPRESS然後服務器主機名= \ SQLEXPRESS * ** * ** * *** *使用Windows身份驗證

第2步:複製這網站config.Dont SP明確用戶名或密碼,因爲我們與windows身份驗證連接,這就是爲什麼我們已經集成了security = true。

第3步:更改安全>在Web管理工具, 「從互聯網的」 身份驗證類型。

享受現在。

1

第2步:複製此:

<remove name="LocalSqlServer"/> 

<add name="LocalSqlServer" connectionString="Data Source=VMK\sqlexpress;Initial Catalog=commodity_exchange;Integrated Security=True" providerName="System.Data.SqlClient"/> 

1
<membership> 
     <providers> 
      <clear/> 
      <add name="AspNetSqlMembershipProvider" 
       type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
       connectionStringName="aspnet_membership" 
       enablePasswordRetrieval="false" 
       enablePasswordReset="true" 
       requiresQuestionAndAnswer="true" 
       applicationName="/" 
       requiresUniqueEmail="false" 
       passwordFormat="Hashed" 
       maxInvalidPasswordAttempts="5" 
       minRequiredPasswordLength="7" 
       minRequiredNonalphanumericCharacters="1" 
       passwordAttemptWindow="10" 
       passwordStrengthRegularExpression=""/> 
     </providers> 
    </membership> 

我需要添加此行我的角色和檔案工作人員根據會員一流的工作來獲得:

<profile> 
     <providers> 
      <clear/> 
      <add name="AspNetSqlProfileProvider" 
      connectionStringName="aspnet_membership" 
      applicationName="/" 
      type="System.Web.Profile.SqlProfileProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
     </providers> 
    </profile> 

    <roleManager enabled="true"> 
     <providers> 
      <clear/> 
      <add name="AspNetSqlRoleProvider" 
      connectionStringName="aspnet_membership" 
      applicationName="/" 
      type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
      <add name="AspNetWindowsTokenRoleProvider" 
      applicationName="/" 
      type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
     </providers> 
    </roleManager>