york8817612 / Ghost

17 stars 16 forks source link

Setting up of the server #19

Open Sonicyip opened 4 years ago

Sonicyip commented 4 years ago

Does anyone know how to handle this error? This happens when I select the server in the game.

2019/12/27 01:49:03 Unhandled exception from Server: System.Collections.Generic.KeyNotFoundException: 指定的索引鍵不在字典中。 於 System.Collections.Generic.Dictionary`2.get_Item(TKey key) 於 Server.Common.Data.Meta.IsDate(String tableName, String fieldName) 於 F:\Ghostonline\server setup\Ghost-master\Server\Common\Data\Meta.cs: 行 46 於 Server.Common.Data.Datum.TrySetMember(SetMemberBinder binder, Object value) 於 F:\Ghostonline\server setup\Ghost-master\Server\Common\Data\Datum.cs: 行 263 於 CallSite.Target(Closure , CallSite , Object , DateTime ) 於 System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) 於 Server.Accounts.Account.Save() 於 F:\Ghostonline\server setup\Ghost-master\Server\LoginServer\Accounts\Account.cs: 行 64 於 Server.Ghost.Client.Unregister() 於 F:\Ghostonline\server setup\Ghost-master\Server\LoginServer\Net\Client.cs: 行 65 於 Server.Common.Net.Session.Dispose() 於 F:\Ghostonline\server setup\Ghost-master\Server\Common\Net\Session.cs: 行 288 於 Server.Common.Net.Session.EndReceive(IAsyncResult ar) 於 F:\Ghostonline\server setup\Ghost-master\Server\Common\Net\Session.cs: 行 128 於 System.Net.LazyAsyncResult.Complete(IntPtr userToken) 於 System.Net.ContextAwareResult.CompleteCallback(Object state) 於 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 於 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 於 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 於 System.Net.ContextAwareResult.Complete(IntPtr userToken) 於 System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) 於 System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped nativeOverlapped) 於 System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped pOVERLAP)

ksh00210 commented 4 years ago

me too..

ksh00210 commented 4 years ago

fix

YourBigDad commented 4 years ago

just need to update your MySQL version or update your MySql.Data.dll version. but who can tell me which port with client use? I can't log in to the game. (i use the MySQL 8.0, the DLL version is 8.0.20. and I used charset utf8 in connect string it's same to MySQL charset)

YourBigDad commented 4 years ago

Does anyone know how to handle this error? This happens when I select the server in the game.

2019/12/27 01:49:03 Unhandled exception from Server: System.Collections.Generic.KeyNotFoundException: 指定的索引鍵不在字典中。 於 System.Collections.Generic.Dictionary`2.get_Item(TKey key) 於 Server.Common.Data.Meta.IsDate(String tableName, String fieldName) 於 F:\Ghostonline\server setup\Ghost-master\Server\Common\Data\Meta.cs: 行 46 於 Server.Common.Data.Datum.TrySetMember(SetMemberBinder binder, Object value) 於 F:\Ghostonline\server setup\Ghost-master\Server\Common\Data\Datum.cs: 行 263 於 CallSite.Target(Closure , CallSite , Object , DateTime ) 於 System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) 於 Server.Accounts.Account.Save() 於 F:\Ghostonline\server setup\Ghost-master\Server\LoginServer\Accounts\Account.cs: 行 64 於 Server.Ghost.Client.Unregister() 於 F:\Ghostonline\server setup\Ghost-master\Server\LoginServer\Net\Client.cs: 行 65 於 Server.Common.Net.Session.Dispose() 於 F:\Ghostonline\server setup\Ghost-master\Server\Common\Net\Session.cs: 行 288 於 Server.Common.Net.Session.EndReceive(IAsyncResult ar) 於 F:\Ghostonline\server setup\Ghost-master\Server\Common\Net\Session.cs: 行 128 於 System.Net.LazyAsyncResult.Complete(IntPtr userToken) 於 System.Net.ContextAwareResult.CompleteCallback(Object state) 於 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 於 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 於 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 於 System.Net.ContextAwareResult.Complete(IntPtr userToken) 於 System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) 於 System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped nativeOverlapped) 於 System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped pOVERLAP)

just need to update your MySQL version or update your MySql.Data.dll version. but who can tell me which port with client use? I can't log in to the game. (i use the MySQL 8.0, the DLL version is 8.0.20. and I used charset utf8 in connect string it's same to MySQL charset)

@YourBigDad

hichay commented 4 years ago

just need to update your MySQL version or update your MySql.Data.dll version. but who can tell me which port with client use? I can't log in to the game. (i use the MySQL 8.0, the DLL version is 8.0.20. and I used charset utf8 in connect string it's same to MySQL charset)

can you read this AM System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.Collections.Generic.Dictionary2.get_Item(TKey key) at MySql.Data.MySqlClient.CharSetMap.GetCharacterSet(DBVersion version, String CharSetName) at MySql.Data.MySqlClient.MySqlField.SetFieldEncoding() at MySql.Data.MySqlClient.MySqlField.SetTypeAndFlags(MySqlDbType type, ColumnFlags flags) at MySql.Data.MySqlClient.NativeDriver.GetColumnData(MySqlField field) at MySql.Data.MySqlClient.NativeDriver.GetColumnsData(MySqlField[] columns) at MySql.Data.MySqlClient.Driver.GetColumns(Int32 count) at MySql.Data.MySqlClient.ResultSet.LoadColumns(Int32 numCols) at MySql.Data.MySqlClient.ResultSet..ctor(Driver d, Int32 statementId, Int32 numCols) at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId) at MySql.Data.MySqlClient.MySqlDataReader.NextResult() at MySql.Data.MySqlClient.MySqlDataReader.Close() at MySql.Data.MySqlClient.MySqlConnection.Close() at MySql.Data.MySqlClient.MySqlHelper.ExecuteReader(String connectionString, String commandText, MySqlParameter[] commandParameters) at MySql.Data.MySqlClient.MySqlHelper.ExecuteReader(String connectionString, String commandText) at Server.Common.Data.Datums.PopulateInternal(String fields, String constraints) in D:\Ghostsv\Server (1)\Ghost-master\Server\Common\Data\Datum.cs:line 26 at Server.Common.Data.Datums.Populate() in D:\Ghostsv\Server (1)\Ghost-master\Server\Common\Data\Datum.cs:line 64 at Server.Ghost.Provider.MobFactory.InitializeMonsterDrop() in D:\Ghostsv\Server (1)\Ghost-master\Server\GameServer\Ghost\Provider\MobFactory.cs:line 1819 at Server.GameServer.Main(String[] args) in D:\Ghostsv\Server (1)\Ghost-master\Server\GameServer\GameServer.cs:line 128`

Neoska commented 3 years ago

just need to update your MySQL version or update your MySql.Data.dll version. but who can tell me which port with client use? I can't log in to the game. (i use the MySQL 8.0, the DLL version is 8.0.20. and I used charset utf8 in connect string it's same to MySQL charset)

can you read this AM System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.Collections.Generic.Dictionary2.get_Item(TKey key) at MySql.Data.MySqlClient.CharSetMap.GetCharacterSet(DBVersion version, String CharSetName) at MySql.Data.MySqlClient.MySqlField.SetFieldEncoding() at MySql.Data.MySqlClient.MySqlField.SetTypeAndFlags(MySqlDbType type, ColumnFlags flags) at MySql.Data.MySqlClient.NativeDriver.GetColumnData(MySqlField field) at MySql.Data.MySqlClient.NativeDriver.GetColumnsData(MySqlField[] columns) at MySql.Data.MySqlClient.Driver.GetColumns(Int32 count) at MySql.Data.MySqlClient.ResultSet.LoadColumns(Int32 numCols) at MySql.Data.MySqlClient.ResultSet..ctor(Driver d, Int32 statementId, Int32 numCols) at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId) at MySql.Data.MySqlClient.MySqlDataReader.NextResult() at MySql.Data.MySqlClient.MySqlDataReader.Close() at MySql.Data.MySqlClient.MySqlConnection.Close() at MySql.Data.MySqlClient.MySqlHelper.ExecuteReader(String connectionString, String commandText, MySqlParameter[] commandParameters) at MySql.Data.MySqlClient.MySqlHelper.ExecuteReader(String connectionString, String commandText) at Server.Common.Data.Datums.PopulateInternal(String fields, String constraints) in D:\Ghostsv\Server (1)\Ghost-master\Server\Common\Data\Datum.cs:line 26 at Server.Common.Data.Datums.Populate() in D:\Ghostsv\Server (1)\Ghost-master\Server\Common\Data\Datum.cs:line 64 at Server.Ghost.Provider.MobFactory.InitializeMonsterDrop() in D:\Ghostsv\Server (1)\Ghost-master\Server\GameServer\Ghost\Provider\MobFactory.cs:line 1819 at Server.GameServer.Main(String[] args) in D:\Ghostsv\Server (1)\Ghost-master\Server\GameServer\GameServer.cs:line 128`

If you get this problem when selecting channel and login(if everything running well,channel 1 SHOULD NOT be "維護中") ,try inputing 14101 in the GameServer.exe window and then press enter.And don't forget set lower_case_table_names=1 in your Mysql server(in Mysql5.7 it's set to 0 by default).I got the same problem and then found a youtube video(https://youtu.be/a554a7wj7U4) about how to run this server.Good luck.

rkrk5050 commented 3 years ago

just need to update your MySQL version or update your MySql.Data.dll version. but who can tell me which port with client use? I can't log in to the game. (i use the MySQL 8.0, the DLL version is 8.0.20. and I used charset utf8 in connect string it's same to MySQL charset)

can you read this AM System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.Collections.Generic.Dictionary2.get_Item(TKey key) at MySql.Data.MySqlClient.CharSetMap.GetCharacterSet(DBVersion version, String CharSetName) at MySql.Data.MySqlClient.MySqlField.SetFieldEncoding() at MySql.Data.MySqlClient.MySqlField.SetTypeAndFlags(MySqlDbType type, ColumnFlags flags) at MySql.Data.MySqlClient.NativeDriver.GetColumnData(MySqlField field) at MySql.Data.MySqlClient.NativeDriver.GetColumnsData(MySqlField[] columns) at MySql.Data.MySqlClient.Driver.GetColumns(Int32 count) at MySql.Data.MySqlClient.ResultSet.LoadColumns(Int32 numCols) at MySql.Data.MySqlClient.ResultSet..ctor(Driver d, Int32 statementId, Int32 numCols) at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId) at MySql.Data.MySqlClient.MySqlDataReader.NextResult() at MySql.Data.MySqlClient.MySqlDataReader.Close() at MySql.Data.MySqlClient.MySqlConnection.Close() at MySql.Data.MySqlClient.MySqlHelper.ExecuteReader(String connectionString, String commandText, MySqlParameter[] commandParameters) at MySql.Data.MySqlClient.MySqlHelper.ExecuteReader(String connectionString, String commandText) at Server.Common.Data.Datums.PopulateInternal(String fields, String constraints) in D:\Ghostsv\Server (1)\Ghost-master\Server\Common\Data\Datum.cs:line 26 at Server.Common.Data.Datums.Populate() in D:\Ghostsv\Server (1)\Ghost-master\Server\Common\Data\Datum.cs:line 64 at Server.Ghost.Provider.MobFactory.InitializeMonsterDrop() in D:\Ghostsv\Server (1)\Ghost-master\Server\GameServer\Ghost\Provider\MobFactory.cs:line 1819 at Server.GameServer.Main(String[] args) in D:\Ghostsv\Server (1)\Ghost-master\Server\GameServer\GameServer.cs:line 128`

If you get this problem when selecting channel and login(if everything running well,channel 1 SHOULD NOT be "維護中") ,try inputing 14101 in the GameServer.exe window and then press enter.And don't forget set lower_case_table_names=1 in your Mysql server(in Mysql5.7 it's set to 0 by default).I got the same problem and then found a youtube video(https://youtu.be/a554a7wj7U4) about how to run this server.Good luck.

i set lower_case_table_names=1(mysql 5.7.33) but still same error

NgoDuy2197 commented 1 year ago

IN my case it's working for version 5.6.17 and i copy all query to run