2011-07-24 13 views
0

asp.net mvc3を使用してWebサイトを作成し、ユーザー管理のためにMembershipクラスを使用しました。
すべてがVS2010で私のローカルホストサーバー上で正常に動作しますが、私は、サーバーに、私は、エラー、次のいくつかの時間を得たことを展開するとき:メンバーシップクラスを使用してasp.net Webサイトにログインする際にエラーが発生しました

Event code: 3005 
Event message: An unhandled exception has occurred. 
Event time: 7/23/2011 3:30:31 PM 
Event time (UTC): 7/23/2011 10:30:31 PM 
Event ID: 5afe87171ad743d39bf87e29f8501615 
Event sequence: 7785 
Event occurrence: 49 
Event detail code: 0 

Application information: 
    Application domain: /LM/W3SVC/3/ROOT-3-129559136991646761 
    Trust level: Full 
    Application Virtual Path:/
    Application Path: C:\inetpub\wwwroot\bandarMVC\ 
    Machine name: BANDARPAYANE 

Process information: 
    Process ID: 2612 
    Process name: w3wp.exe 
    Account name: IIS APPPOOL\MVC 

Exception information: 
    Exception type: IndexOutOfRangeException 
    Exception message: Index was outside the bounds of the array. 
    at System.Data.SqlClient.SqlDataReader.ReadColumn(Int32 i, Boolean setTimeout) 
    at System.Data.SqlClient.SqlDataReader.GetInt32(Int32 i) 
    at System.Web.Security.SqlMembershipProvider.GetPasswordWithFormat(String username, Boolean updateLastLoginActivityDate, Int32& status, String& password, Int32& passwordFormat, String& passwordSalt, Int32& failedPasswordAttemptCount, Int32& failedPasswordAnswerAttemptCount, Boolean& isApproved, DateTime& lastLoginDate, DateTime& lastActivityDate) 
    at System.Web.Security.SqlMembershipProvider.CheckPassword(String username, String password, Boolean updateLastLoginActivityDate, Boolean failIfNotApproved, String& salt, Int32& passwordFormat) 
    at System.Web.Security.SqlMembershipProvider.ValidateUser(String username, String password) 
    at BandarMVC.Controllers.AccountController.LogOn(LogOnModel model, String returnUrl) in C:\Users\Javad\Documents\Visual Studio 2010\Projects\BandarMVC\BandarMVC\Controllers\AccountController.cs:line 40 
    at lambda_method(Closure , ControllerBase , Object[]) 
    at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) 
    at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) 
    at System.Web.Mvc.Controller.ExecuteCore() 
    at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) 
    at System.Web.Mvc.MvcHandler.<>c__DisplayClass6.<>c__DisplayClassb.<BeginProcessRequest>b__5() 
    at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0() 
    at System.Web.Mvc.MvcHandler.<>c__DisplayClasse.<EndProcessRequest>b__d() 
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 



Request information: 
    Request URL: http://10.1.1.90/Account/LogOn?ReturnUrl=/ 
    Request path: /Account/LogOn 
    User host address: 10.1.1.90 
    User: 
    Is authenticated: False 
    Authentication Type: 
    Thread account name: IIS APPPOOL\MVC 

Thread information: 
    Thread ID: 26 
    Thread account name: IIS APPPOOL\MVC 
    Is impersonating: False 
    Stack trace: at System.Data.SqlClient.SqlDataReader.ReadColumn(Int32 i, Boolean setTimeout) 
    at System.Data.SqlClient.SqlDataReader.GetInt32(Int32 i) 
    at System.Web.Security.SqlMembershipProvider.GetPasswordWithFormat(String username, Boolean updateLastLoginActivityDate, Int32& status, String& password, Int32& passwordFormat, String& passwordSalt, Int32& failedPasswordAttemptCount, Int32& failedPasswordAnswerAttemptCount, Boolean& isApproved, DateTime& lastLoginDate, DateTime& lastActivityDate) 
    at System.Web.Security.SqlMembershipProvider.CheckPassword(String username, String password, Boolean updateLastLoginActivityDate, Boolean failIfNotApproved, String& salt, Int32& passwordFormat) 
    at System.Web.Security.SqlMembershipProvider.ValidateUser(String username, String password) 
    at BandarMVC.Controllers.AccountController.LogOn(LogOnModel model, String returnUrl) in C:\Users\Javad\Documents\Visual Studio 2010\Projects\BandarMVC\BandarMVC\Controllers\AccountController.cs:line 40 
    at lambda_method(Closure , ControllerBase , Object[]) 
    at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) 
    at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) 
    at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) 
    at System.Web.Mvc.Controller.ExecuteCore() 
    at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) 
    at System.Web.Mvc.MvcHandler.<>c__DisplayClass6.<>c__DisplayClassb.<BeginProcessRequest>b__5() 
    at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0() 
    at System.Web.Mvc.MvcHandler.<>c__DisplayClasse.<EndProcessRequest>b__d() 
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 


Custom event details: 


は1つがそののこのエラーと解決策の理由を知っている誰がいますか?

[HttpPost] 
    public ActionResult LogOn(LogOnModel model, string returnUrl) 
    { 
     BuildMenu(); 
     if (ModelState.IsValid) 
     { 
    -------> if (Membership.ValidateUser(model.UserName, model.Password)) <---------------- 
      { 

       FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); 
       if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") 
        && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) 
       { 
        return Redirect(returnUrl); 
       } 
       else 
       { 
        return RedirectToAction("Index", "Home"); 
       } 
      } 
      else 
      { 
       ModelState.AddModelError("", "نام کاربر و یا شناسه عبور صحیح نمی باشد"); 
      } 
     } 

     // If we got this far, something failed, redisplay form 
     return View(model); 
    } 
+0

このエラーが発生しているコードを置くことができますか? –

+0

質問を更新してコードを入れました – JGC

答えて

1

それはあなたがあなたのアプリケーションを展開するときに接続しているデータベースのように見えますが、.NET Frameworkのaspnet_regsql.exeユーティリティの一部の古いバージョンで作成されました:

次のコードは、この例外がスローされます。 creating and configuring the membership databaseと同じバージョンのaspnet_regsqlをローカルで試してみてください。または、おそらくローカルでSQL Expressと~/App_Dataというフォルダを使用しただけかもしれません。

+0

.NET Framework v4.0.30319をサーバーとローカルホストで使用しました。私はSQLEXPRESS SERVER 2008 R2を使用しますが、ローカルホストのSQLEXPRESS 2008.whatを使用しますか? 私はそのエラーをめったに得られないということを強調しなければならない。 – JGC

+0

両方のデータベースのテーブル構造を比較します。最初にaspnet_Membershipテーブルを比較したいとします。 – Pleun

+0

彼らは同じです。 – JGC

関連する問題