2013-01-24 2 views
2

ASP.NET 멤버쉽에 MySQL 세션 상태 공급자를 사용하고 있습니다. 나는 구성에서 MySQL은 웹 사이트 구성 유틸리티에게 세션 상태 제공자를 사용 도구가 나서서 다음 스키마 생성 :"테이블 'users.my_aspnet_Sessions'가 존재하지 않습니다."

Tables_in_users

my_aspnet_applications 
my_aspnet_membership 
my_aspnet_profiles 
my_aspnet_roles 
my_aspnet_schemaversion 
my_aspnet_sessioncleanup 
my_aspnet_sessions 
my_aspnet_users 
my_aspnet_usersinroles 

는 자동 세션 정리 유틸리티는 다음과 같은 예외를 던지는 유지한다는 문제를 :

데이터 원본과 통신하는 동안 예외가 발생했습니다.

Action: CleanupOldSessionsException: MySql.Data.MySqlClient.MySqlException (0x80004005): Table 'users.my_aspnet_Sessions' doesn't exist 
    at MySql.Data.MySqlClient.MySqlStream.ReadPacket() 
    at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId) 
    at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId) 
    at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) 
    at MySql.Data.MySqlClient.MySqlDataReader.NextResult() 
    at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) 
    at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() 
    at MySql.Web.SessionState.MySqlSessionStateStore.DeleteTimedOutSessionsWithCallback() 
    at MySql.Web.SessionState.MySqlSessionStateStore.DeleteTimedOutSessions() 
    at MySql.Web.SessionState.MySqlSessionStateStore.CleanupOldSessions(Object o) 

예외는 완전히 유효하며 'users.my_aspnet_Sessions'는 실제로 존재하지 않습니다. 주위를 둘러 쌀 수있는 방법이 있습니까? 구성에서 뭔가를 놓친 적이 있습니까?

나는 이미 테이블의 이름을 바꾸려고했지만 커넥터의 다른 구성 요소가 여전히 현재 이름을 기대하기 때문에 다른 예외가 발생합니다.

도움이 될 것입니다.

감사합니다.

+0

사용자를위한 별도의 데이터베이스와 트랜잭션을위한 별도의 데이터베이스가 있습니까? 또는 하나의 데이터베이스에 모든 것이 있습니까? –

+0

현재 모든 것이 단일 테이블에 있습니다. – digitalmonkey

+0

같은 문제가 있습니다. 내 경우에는 솔루션을 놓친 그냥 원인을 알고 ... 내 데이터베이스는 리눅스 서버에 있으며 그 때문에 테이블 이름은 대소 문자를 구분합니다 ... MySQL은 my_aspnet_sessions라는 테이블을 만들고 공급자 어딘가에 my_aspnet_Sessions – Sergio

답변

2

내 의견에 말했듯이, 나는 똑같은 문제가있었습니다.

"내 문제는 해결책을 찾지 못했습니다. 내 데이터베이스가 리눅스 서버에있어 테이블 이름이 대소 문자를 구별합니다 ... MySQL은 my_aspnet_sessions라는 테이블을 생성하고 공급자 중 어딘가에서 my_aspnet_Sessions로 액세스하려고 시도합니다. "

이 문제는 mysql 커넥터의 버그로 인해 발생했으며 버전 6.8.3 (http://dev.mysql.com/downloads/file.php?id=450594)에서 수정되었습니다.

상태 서버 공급자 버전을 "버전 = 6.8.3.0"으로 설치하고 변경하면 정상적으로 작동합니다.

관련 문제