Ошибка членства в Asp.net - PullRequest
1 голос
/ 29 января 2009

У нас есть работающая бизнес-система с ошибкой, которая время от времени возникает. Ошибка в соответствии с трассировкой стека, полученной от поставщика членства asp.net. Кажется, не имеет значения, какой пользователь в данный момент вошел в систему. Насколько я могу судить, таблицы членства asp.net в базе данных в порядке.

Пример строки кода, генерирующей ошибку:

if (Membership.GetUser() != null)

Описание ошибки:

Unable to cast object of type 'System.Int32' to type 'System.String'.

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

[InvalidCastException: Unable to cast object of type 'System.Int32' to type 'System.String'.]
System.Data.SqlClient.SqlBuffer.get_String() +141
System.Data.SqlClient.SqlDataReader.GetString(Int32 i) +96
System.Web.Security.SqlMembershipProvider.GetNullableString(SqlDataReader reader, Int32 col) +35
System.Web.Security.SqlMembershipProvider.GetUser(String username, Boolean userIsOnline) +1110
System.Web.Security.Membership.GetUser(String username, Boolean userIsOnline) +82
System.Web.Security.Membership.GetUser() +19

Кто-нибудь имеет представление о том, что не так?


Обновление: мы не смогли найти решение этой ошибки. Но в конце концов он исчез.

Теперь, когда мы мигрировали на другой сервер, эта ошибка полностью наносит вред нашему приложению. У меня совершенно нет идей: (* ​​1017 *

1 Ответ

0 голосов
/ 09 февраля 2012

Поместите блок try / catch вокруг вызова Membership.GetUser () и зарегистрируйте имя пользователя. Вы можете получить имя пользователя, вызвав Membership.GetCurrentUserName ().

Если у вас есть имя пользователя, для которого это вызывает проблемы, посмотрите на таблицу членства в SQL и проверьте поле Комментарии. Я предполагаю, что в поле для комментариев происходит что-то смешное - возможно, есть какие-то странные символы юникода, с которыми у него проблемы, или, может быть, в этом поле слишком много данных и т. Д.

Также попробуйте вызвать dbo.aspnet_Membership_GetUserByName в базе данных членства для пользователя, с которым у него возникли проблемы, и посмотрите, какой результат вы получите.

...