私は現在、相互作用なしで実行する必要のあるコンソールアプリケーションを作成しています。このアプリケーションでは、最後に更新されたデータを確認するためにMySQLサーバーに接続しています。これは私のワークステーションで、ネットワークドライブからでも問題なく実行されます。C#サーバー上でMySQLを実行するとMySQLが例外をスローする
私はそれを私たちのサーバーに置き、私のためにそれを実行させると、突然MySQLを実行できません。それはconnection.Open()で失敗します。
私は現在使用しています: -MySQLコネクタバージョン6.8.8 -.NET枠組みここで4.5.2
は、それがスローエラーです。
System.TypeInitializationException: The type initializer for 'MySql.Data.MySqlClient.Replication.ReplicationManager' threw an exception. ---> System.TypeInitializationException: The type initializer for 'MySql.Data.MySqlClient.MySqlConfiguration' threw an exception. ---> System.ArgumentException: The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))
at System.Security.Policy.PEFileEvidenceFactory.GetLocationEvidence(SafePEFileHandle peFile, SecurityZone& zone, StringHandleOnStack retUrl)
at System.Security.Policy.PEFileEvidenceFactory.GenerateLocationEvidence()
at System.Security.Policy.PEFileEvidenceFactory.GenerateEvidence(Type evidenceType)
at System.Security.Policy.AssemblyEvidenceFactory.GenerateEvidence(Type evidenceType)
at System.Security.Policy.Evidence.GenerateHostEvidence(Type type, Boolean hostCanGenerate)
at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type)
at System.Security.Policy.Evidence.GetHostEvidence(Type type, Boolean markDelayEvaluatedEvidenceUsed)
at System.Security.Policy.AppDomainEvidenceFactory.GenerateEvidence(Type evidenceType)
at System.Security.Policy.Evidence.GenerateHostEvidence(Type type, Boolean hostCanGenerate)
at System.Security.Policy.Evidence.GetHostEvidenceNoLock(Type type)
at System.Security.Policy.Evidence.RawEvidenceEnumerator.MoveNext()
at System.Security.Policy.Evidence.EvidenceEnumerator.MoveNext()
at System.Configuration.ClientConfigPaths.GetEvidenceInfo(AppDomain appDomain, String exePath, String& typeName)
at System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix(AppDomain appDomain, String exePath)
at System.Configuration.ClientConfigPaths..ctor(String exePath, Boolean includeUserConfig)
at System.Configuration.ClientConfigPaths.GetPaths(String exePath, Boolean includeUserConfig)
at System.Configuration.ClientConfigurationHost.RequireCompleteInit(IInternalConfigRecord record)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)
at System.Configuration.ConfigurationManager.GetSection(String sectionName)
at MySql.Data.MySqlClient.MySqlConfiguration..cctor()
--- End of inner exception stack trace ---
at MySql.Data.MySqlClient.MySqlConfiguration.get_Settings()
at MySql.Data.MySqlClient.Replication.ReplicationManager..cctor()
--- End of inner exception stack trace ---
at MySql.Data.MySqlClient.Replication.ReplicationManager.IsReplicationGroup(String groupName)
at MySql.Data.MySqlClient.MySqlConnection.Open()
at WarningTextSolution.MyDB.OpenConnection()
し、関連するコード:
MySqlConnection con;
public MyDB()
{
logger = actionlogger;
logger.Log("------ [ STARTING MySQL ] -----");
logger.Log("Attempting to create MySQL database connection");
try
{
string connectionString = "server=SERVERIP;uid=USERID;pwd=PASSWORD;database=DATABASE;";
con = new MySqlConnection();
con.ConnectionString = connectionString;
logger.Log("Connection accepted");
}
catch(Exception e)
{
logger.Log("MySQL exception: " + e);
Console.WriteLine("Error occured, please read the log.");
}
logger.Log("------ [ MySQL STARTED ] -----");
}
/// <summary>
/// Opens a connection to ecommerce Database
/// </summary>
/// <returns>True if successful else false</returns>
private bool OpenConnection()
{
try
{
logger.Log("Attempting to open connection to server");
con.Open();
logger.Log("Connection successfully opened");
return true;
}
catch (Exception e)
{
logger.Log("Attempt failed");
logger.Log("MySQL connection error: " + e);
Console.WriteLine("MySQL error: " + e);
return false;
}
}
私はこれをグーグルで試したと私は、この問題への答えを見つけることができます。
ネイティブコードのデバッグを有効にしてSQL Serverのデバッグを有効にしようとしましたが、いずれも役立たず、
これ以上の情報が必要な場合は、お気軽にお問い合わせください。
だから、replicatormanagerはあなたのコードと何をしていますか?あなたはそれで何をしていますか? – BugFinder
何も直接。 MySqlConnectionクラスのOpen()メソッドを呼び出すたびに呼び出されます。 – aSnejbjerg
マシン/ユーザーがデータベースにアクセスすることは許可されていますか?私はケースではない場合、mysqlがTypeInitializationExceptionをスローすることができると思います。 –