2012-08-08 90 views
0

我已經使用Visual Studio的默認網站創建Application.it的工作在本地機器罰款,但是當我其託管在服務器iis.it給出了錯誤刪除本地數據庫和asp.net登錄控制會員提供

Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'. 

在我的數據庫中沒有這樣的sp,我也不想使用成員provider.so我試圖從web.config中刪除本地連接,但仍然沒有運氣。

<remove name="LocalSqlServer" /> 
     <clear /> 
     <add name="LocalSqlServer" connectionString="Data Source=GGT\NNY;Initial Catalog=VersionControl;User ID=sa;Password=123" providerName="System.Data.SqlClient"/> 


     <add name="ConVersionControl" connectionString="Data Source=GGT\NNY;Initial Catalog=VersionControl;User ID=sa;Password=123" providerName="System.Data.SqlClient"/> 

ConVersionControl

是我使用我的應用程序

以下連接是我使用的洛

protected void LoginButton_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      dtUserDetails = new DataTable(); 
      if (UserRepositoryBL.ValidateUser(LoginUser.UserName.Trim(), LoginUser.Password.Trim(), out dtUserDetails)) 
      { 

       AuthUser au = new AuthUser(); 
       if (dtUserDetails.Rows.Count > 0) 
       { 
        DataRow DR = dtUserDetails.Rows[0]; 
        au.UserID = Convert.ToInt32(DR["UserID"].ToString()); 
        au.UserNo = DR["UserNo"].ToString(); 
        au.UserName = DR["UserName"].ToString(); 
        au.Password = DR["Password"].ToString(); 
       } 
       string userData = au.ToString(); 
       FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(

      1,        // Version number 

      LoginUser.UserName.Trim(),  // Username 

      DateTime.Now,     // Issue date 

      DateTime.Now.AddMinutes(60), // Expiration date 

      false,       // Persistent? 

      userData     // User data 

     ); 



       string eticket = FormsAuthentication.Encrypt(ticket); 

       HttpCookie cookie = new HttpCookie 

        (FormsAuthentication.FormsCookieName, eticket); 

       Response.Cookies.Add(cookie); 


       BasePage.ActivityLog("User Login", LoginUser.UserName.Trim(), true, Request.RawUrl); 
       string url = FormsAuthentication.GetRedirectUrl(LoginUser.UserName, false); 

       Response.Redirect(url); 



      } 
      else 
      { 
       LoginUser.FailureText = "Your login attempt was not successful. Please try again."; 
      } 

     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

代碼請注意,應用程序正常工作uccessful login.above 錯誤只有當我嘗試使用無效的用戶名或密碼登錄

回答

1

如果你不想使用ASP.NET會員供應商的出現,有可能是你繼承了您的IIS服務器上的更高級別的web.config或machine.config提供程序。

嘗試在你的web配置清除提供商:

<system.web> 
    <membership> 
     <providers> 
      <clear /> ... 

    <roleManager> 
     <providers> 
      <clear /> .. 

如果然而想使用會員,那麼如果ASPNET會員表,特效等並不在本地存在數據庫,但當地的環境中工作,很可能是在您的本地開發環境的Membership DDL was created in the default database,即aspnetdb

的配置設置應該在你的web.config的<membership>

你有2種選擇:

  1. 移動或在生產環境中創建aspnetdb數據庫以及
  2. 合併的aspnetdb表,特效等等到本地數據庫,然後將其部署到生產環境。

您也可以參考這裏如何從頭會員對象重新到數據庫: Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'

+0

我試圖清除提供商現在是讓「必須指定默認的成員資格提供程序」的錯誤 – chamara 2012-08-08 06:32:05

+0

@ chamara - 看起來你的代碼中某處還有一個無意的依賴關係。通過這裏嘗試工作http://msdn.microsoft.com/en-us/library/xdt4thhy.aspx – StuartLC 2012-08-08 06:45:41