2015-08-25 31 views
5

मैंने मानक एएसपी.नेट एमवीसी प्रोजेक्ट के भीतर एएसपी.NET पहचान मॉडल को ई-मेल सत्यापन जोड़ा। निम्न पंक्ति को एक AccessViolationException कारण बनता है:Url.Action() सिस्टम का कारण बनता है .AccessViolationException

callbackUrl = Url.Action("ConfirmEmail", "Account", confirmModel, Request.Url.Scheme); 

अद्यतन:के रूप में बताई नहीं जा सकती, क्योंकि समस्या यह गायब हो गया था। मैं यह पता लगाने की कोशिश करूंगा कि इसे किस तरह से दूर किया गया है। मेरी चिंता के लिए मुझे समाधान में किसी भी नाटकीय परिवर्तन से अवगत नहीं है।

पूरा खाता नियंत्रक विधि दर्ज की उपयोगकर्ताओं के लिए इस तरह दिखता है:

// POST: /Account/Register 
[HttpPost] 
[AllowAnonymous] 
[ValidateAntiForgeryToken] 
public async Task<ActionResult> Register(RegisterViewModel model) 
{ 
    if (ModelState.IsValid) 
    { 
     ApplicationUser user = new ApplicationUser { UserName = model.Email, Email = model.Email }; 
     IdentityResult result = await UserManager.CreateAsync(user, model.Password); 
     if (result.Succeeded) 
     { 
      string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); 

      string callbackUrl; 
      try 
      { 
       string requestScheme = Request.Url.Scheme; 
       object confirmModel = new { userId = user.Id, code = code }; 
       callbackUrl = Url.Action("ConfirmEmail", "Account", confirmModel, Request.Url.Scheme); // TODO: Fails somehow! 
      } 
      catch (Exception ex) 
      { 
       Debug.WriteLine(ex); 
       callbackUrl = "https://localhost:43000/Account/ConfirmEmail?userid=" + user.Id + "&code=" + code; 
      } 

      await 
       UserManager.SendEmailAsync(
         userId: user.Id, 
         subject: "Verify it's you", 
         body: "Please confirm your email address by clicking <a href=\"" + callbackUrl + "\">here</a>"); 

      return View("CheckYourEmail"); 
     } 

     AddErrors(result); 
    } 

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

दुर्भाग्य से वहाँ कोई आंतरिक अपवाद या कुछ भी उपयोगी है।

पकड़() ब्लॉक समस्या को हल करने के रूप में हल करता है।
लेकिन मैं वास्तव में उत्सुक हूं कि यहां क्या गलत हो रहा है।

+0

क्या आप अपने प्रश्न में 'ex.ToString()' के पूरे आउटपुट के सटीक पाठ को कॉपी और पेस्ट कर सकते हैं? –

+0

अपवाद पर स्टैक ट्रेस कैसा दिखता है? –

उत्तर

0

इसे ऑब्जेक्ट की पुष्टि करने के बजाय पुष्टि करें मॉडल = ..., "गतिशील पुष्टि मॉडल = ..." का उपयोग करें और देखें कि यह ठीक करता है या नहीं।

संबंधित मुद्दे