2011-08-17 39 views
0

我的類庫無法使用MySql .net連接器建立一個mysql連接。如果通過使用類庫的命令行控制檯應用運行它,它可以連接。但是當我使用PHP COM加載/運行.net程序集時,它失敗了。類庫具有模擬代碼來模擬用戶。爲了測試,我模擬了我自己的用戶帳戶。MySqlConnection打開失敗,訪問被拒絕,即使模仿

查看堆棧跟蹤。訪問C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Config \ machine.config需要哪些憑據? 在.NET程序集中模擬的正確代碼是什麼(它也是COM感知的)?

2011/08/17 10:11:52.653 AM - The type initializer for 'System.Transactions.Diagnostics.DiagnosticTrace' threw an exception. 
2011/08/17 10:11:52.653 AM - at System.Transactions.Transaction.get_Current() 
    at MySql.Data.MySqlClient.MySqlConnection.Open() 
    at MineForums.Miner.Process(Int32 forumId, String mineDirectory) 
2011/08/17 10:11:52.653 AM - Configuration system failed to initialize 
2011/08/17 10:11:52.653 AM - at System.Transactions.Transaction.get_Current() 
    at MySql.Data.MySqlClient.MySqlConnection.Open() 
    at MineForums.Miner.Process(Int32 forumId, String mineDirectory) 
2011/08/17 10:11:52.965 AM - System.TypeInitializationException: The type initializer for 'System.Transactions.Diagnostics.DiagnosticTrace' threw an exception. ---> System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: An error occurred loading a configuration file: Access is denied. 
(C:\Windows\Microsoft.NET\Framework\v2.0.50727\Config\machine.config) ---> System.Security.SecurityException: Access is denied. 

    at System.Security.Principal.WindowsImpersonationContext.Undo() 
    at System.Security.Principal.WindowsImpersonationContext.Dispose(Boolean disposing) 
    at System.Security.Principal.WindowsImpersonationContext.Dispose() 
    at System.Configuration.BaseConfigurationRecord.InitConfigFromFile() 
The Zone of the assembly that failed was: 
MyComputer 
    --- End of inner exception stack trace --- 
    at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal) 
    at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors) 
    at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors() 
    at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey) 
    --- End of inner exception stack trace --- 
    at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey) 
    at System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName) 
    at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName) 
    at System.Configuration.ConfigurationManager.GetSection(String sectionName) 
    at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName) 
    at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection() 
    at System.Diagnostics.DiagnosticsConfiguration.Initialize() 
    at System.Diagnostics.DiagnosticsConfiguration.get_Sources() 
    at System.Diagnostics.TraceSource.Initialize() 
    at System.Diagnostics.TraceSource.get_Switch() 
    at System.Transactions.Diagnostics.DiagnosticTrace..cctor() 
    --- End of inner exception stack trace --- 
    at System.Transactions.Transaction.get_Current() 
    at MySql.Data.MySqlClient.MySqlConnection.Open() 
    at MineForums.Miner.Process(Int32 forumId, String mineDirectory) 

回答

1

cacls "C:\Windows\Microsoft.NET\Framework\v2.0.50727\Config\machine.config"在命令提示符將顯示誰/什麼對這個文件的權限。您也想要驗證文件上方所有目錄的訪問權限。

相關問題