MysqlMembership에 대해 UserName/Password 인증을 수행하는 데 사용하는 사용자 지정 httpModule이있는 WCF Webservice가 있습니다.MysqlMembership Membership.ValidateUser 부하가 낮을 때 교착 상태 문제
public void Init(HttpApplication application)
{
application.AuthenticateRequest += new EventHandler(this.OnAuthenticateRequest);
application.EndRequest += new EventHandler(this.OnEndRequest);
}
public void OnAuthenticateRequest(object source, EventArgs eventArgs)
{
...
...
if (Membership.ValidateUser(username, password))
{
서비스를로드 테스트를 시작했을 때 난처한 문제가 발생했습니다. 요청은 무작위로 Membership.ValidateUser 호출에 실패합니다. 로드 테스터의 각 스레드마다 동일한 사용자 이름/로그인을 사용하고 있습니다. 다음은 오류입니다.
[MySqlException (0x80004005): Deadlock found when trying to get lock; try restarting transaction]
MySql.Data.MySqlClient.MySqlStream.ReadPacket() +506
MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int32& insertedId) +450
MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) +131
MySql.Data.MySqlClient.MySqlDataReader.NextResult() +1216
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) +2191
MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() +27
MySql.Web.Security.MySQLMembershipProvider.ValidateUser(String username, String password) +1092
[ProviderException: An exception occurred. Please check the Event Log.]
MySql.Web.Security.MySQLMembershipProvider.ValidateUser(String username, String password) +1481
MyApplication.UserAuthenticator.UserNameAuthenticator.OnAuthenticateRequest(Object source, EventArgs eventArgs) in C:\Develop\MyProject\MyProject.UserAuthenticator\UserNameAuthenticator.cs:123
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +270
아이디어가 있습니까?
감사합니다, AFrieze
실제 오류는 lastActivityDate에서 교착 상태 였지만 동일한 효과가있었습니다. – AFrieze