Получается неверная ошибка электронной почты при попытке обновить пользователя?

1

Я пытаюсь обновить комментарии для пользователя, но когда я попытаюсь использовать следующий код:

MembershipUser User = Membership.GetUser(UserName);
User.Comment = "Whatever...";
Membership.UpdateUser(User);

Он выдает ошибку:

Посылаемое сообщение недействительно.

Я проверил письмо прямо перед тем, как позвонить в UpdateUser и все в порядке. Кто-нибудь может понять, почему это происходит?

ОБНОВИТЬ:

Трассировки стека -

[ProviderException: The E-mail supplied is invalid.]
   System.Web.Security.SqlMembershipProvider.UpdateUser(MembershipUser user) +1583
   System.Web.Security.MembershipUser.Update() +111
   Security_Login.btnSubmit_Click(Object sender, EventArgs e) in c:\inetpub\V1\VerbalInk.Web\Security\Login.aspx.cs:40
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +115
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +140
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981
  • 2
    что вы получили за электронную почту объекта User? может быть так, что запись в вашем ресурсе сохранена в недопустимом состоянии, поэтому она может загружаться, но не может сохранять ...
  • 0
    Пожалуйста, предоставьте полную трассировку стека ошибки, поскольку это может добавить больше информации о том, что просто электронная почта недействительна.
Показать ещё 4 комментария
Теги:
membership-provider

2 ответа

2

Возможно, в базе данных есть Duplicate Email Address. если вы установите requiresUniqueEmail ложь в Membership Connection String, true Membership Connection String, установите его true.

<add name="AspNetSqlMembershipProvider" applicationName="blah" 
connectionStringName="balh" enablePasswordReset="true" enablePasswordRetrieval="false"
maxInvalidPasswordAttempts="5" minRequiredNonalphanumericCharacters="0" 
minRequiredPasswordLength="5" passwordAttemptWindow="15" passwordFormat="Hashed"    
requiresQuestionAndAnswer="false" **requiresUniqueEmail="true"** 
type="System.Web.Security.SqlMembershipProvider" />
  • 0
    Да, это вызвано дублированием электронной почты. Добавление requireUniqueEmail = "false" в строку подключения в web.config решило проблему.
0

Это оказалось вызвано тем, что в моей таблице aspnet_Membership была другая запись, у которой был тот же адрес электронной почты, что и запись, которую я пытался обновить. Это тестовая база данных, поэтому я предполагаю, что я должен добавить ее вручную или что-то еще, потому что в текущей системе невозможно создать дубликаты.

По какой-то причине у них есть довольно вводящее в заблуждение сообщение об ошибке, в котором говорится, что с адресом электронной почты что-то не так, когда проблема связана с дублирующимися сообщениями электронной почты.

Надеюсь, это может помочь кому-то в будущем.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню