0

我有一個aspnetservicesdb數據庫用於存儲用戶配置文件。我部署了一個新的asp.net mvc應用程序。該應用程序在appdata目錄中使用本地sqlexpress數據庫以用於成員資格/配置文件目的。MVC應用程序正在尋找憑據在錯誤的數據庫

我不希望應用程序使用sqlexpress數據庫。

我已經從web.config和AuthConfig.RegisterAuth()中刪除了連接字符串; from global.asax

到目前爲止,這一直奏效。我能夠成功地在控制器中使用User.Identity.Name。但是,當我試圖在視圖中使用User.IsInRole時,由於本地sqlexpress數據庫不存在,我得到了一個sql server未發現的錯誤。

如何告訴應用程序使用我現有的數據庫並停止查找sql​​express db?

編輯 - 這裏是連接字符串

<!--<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=removed;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|removed" providerName="System.Data.SqlClient"/>--> 
    <add name="ApplicationServices" connectionString="Data Source=removed;Initial Catalog=aspservicesdb;UID=removed;PWD=removed" providerName="System.Data.SqlClient" /> 

編輯 - 這裏是從Web配置

<authentication mode="Forms"> 
    <forms loginUrl="~/login.aspx" timeout="2880" /> 
</authentication> 
<membership userIsOnlineTimeWindow="480"> 
    <providers> 
    <clear /> 
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="12" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" /> 
    </providers> 
</membership> 
+0

哪個版本的MVC?哪個會員提供商? (你說SqlMembershipProvider,但你確定?)SqlMembershipProvider在web.config中配置它的數據庫,所以你在那裏設置連接字符串。 EntityFramework與什麼有什麼關係? SqlMembershipProvider不使用EntityFramework。 –

+0

是的,我確定。我已將連接字符串添加到原始問題中,包括localdb的註釋掉默認值。 – tintyethan

+0

你可以分享你的實體上下文的定義嗎? –

回答

0

你不告訴asp.net使用會員提供其他成員的部分。這應該是這樣的:

<membership defaultProvider="AspNetSqlMembershipProvider" userIsOnlineTimeWindow="480"> 

而且,由於你得到會員一些其他的方式,告訴我,你很可能使用SimpleMembership,這意味着你需要從應用程序中刪除SimpleMembership代碼(包括用戶數據方面,和其他屬性)

+0

這是我聽說過的第一個SimpleMembership。我剛纔看了一下這方面的情況,但是有沒有一種資源可以幫助您解決問題?謝謝你的幫助。 – tintyethan

+0

我想提一下,應用程序在本地和服務器上都成功從舊成員資格數據庫獲取用戶名。該錯誤僅在服務器上發生,並且僅在嘗試訪問用戶角色時纔會發生。 – tintyethan

+0

@tintyethan - 那麼,你忽略了我對哪個版本的MVC的請求,並且你聲明你確實知道你正在使用SqlMembershipProvider ...如果你使用的是MVC4,那麼你需要學習一些新的東西。 –

0

原來我沒有添加這些部分的web配置...

<profile> 
     <providers> 
     <clear/> 
     <add name="AspNetSqlProfileProvider" connectionStringName="ApplicationServices" 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 connectionStringName="ApplicationServices" applicationName="/" 
      name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     </providers> 
    </roleManager> 

的問題似乎得到解決。

相關問題