Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pengecualian Keamanan menggunakan MySQL dan Entity Framework di godaddy

Yang aneh. Aplikasi ASP.NET hosting bersama GoDaddy dijalankan di bawah Medium Trust, dan pembuatan penghitung kinerja mungkin memerlukan kepercayaan penuh, tetapi pembuatan penghitung kinerja bukanlah yang gagal di sini. (dan jika gagal, itu tidak akan menyebar karena pengecualian pembuatan perf coutner ditelan oleh kode klien mySQL).

Alih-alih, itu gagal mencoba mengakses sumber daya string, sebelum pembuatan penghitung kinerja. Kegagalannya adalah dengan baris kode ini di Resources.Designer.cs dari klien MySQL:

return ResourceManager.GetString("PerfMonCategoryName", resourceCulture)

Beberapa hal untuk dicoba, dalam urutan kesulitan yang meningkat:

  1. pastikan Anda memiliki DLL klien MySQL di direktori BIN aplikasi dan Anda tidak mencoba memuat DLL klien dari GAC GoDaddy. Jangan pernah bergantung pada binari yang disediakan GoDaddy jika Anda dapat menghindarinya!

  2. beralih ke budaya EN-US sehingga klien tidak perlu mencari DLL sumber daya lain, dan melihat apakah masalahnya hilang.

  3. Bangun klien .NET dari kode sumber, alih-alih menyalin DLL dari distribusi biner ke direktori BIN aplikasi Anda. Ini akan membuat masalah seperti ini lebih mudah untuk di-debug karena kode mySQL tidak akan menjadi kotak hitam. Dan, dalam keadaan darurat, akan memungkinkan Anda mengubah panggilan pengambilan sumber daya yang bermasalah (atau hard-code lokal)! :-)

BTW, jika Anda tergoda untuk mengatur "Gunakan Performance Monitor=false" di string koneksi Anda untuk mencoba menghindari masalah, jangan repot-repot. Kode bermasalah akan dieksekusi terlepas dari pengaturan itu:

    public PerformanceMonitor(MySqlConnection connection)
    {
        this.connection = connection;

        //// this line is where it bombs
        string categoryName = Resources.PerfMonCategoryName;

        //// this line is affected by connection string setting
        if (connection.Settings.UsePerformanceMonitor && procedureHardQueries == null)
        {
            try
            {
                procedureHardQueries = new PerformanceCounter(categoryName,
                                                              "HardProcedureQueries", false);
                procedureSoftQueries = new PerformanceCounter(categoryName,
                                                              "SoftProcedureQueries", false);
            }
            catch (Exception ex)
            {
                Logger.LogException(ex);
            }
        }
    }


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dpkg:paket pemrosesan kesalahan mysql-server (masalah ketergantungan)?

  2. Bagaimana cara memilih jumlah baris tetap untuk setiap grup?

  3. Bagaimana cara mengimpor dump mysql sambil mengganti nama beberapa tabel/kolom dan tidak mengimpor yang lain sama sekali?

  4. apakah ada opsi pembaruan otomatis untuk DateTimeField di peewee seperti TimeStamp di MySQL?

  5. Alternatif Proxy MySQL untuk Database Sharding