Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ngoại lệ bảo mật sử dụng MySQL và Entity Framework trên godaddy

Khó hiểu, kỳ quặc. Các ứng dụng ASP.NET lưu trữ chia sẻ của GoDaddy thực thi theo mức độ tin cậy trung bình và việc tạo bộ đếm hiệu suất có thể yêu cầu sự tin tưởng hoàn toàn, nhưng việc tạo bộ đếm hiệu quả không phải là điều thất bại ở đây. (và nếu không thành công, nó sẽ không phổ biến vì các ngoại lệ tạo perf coutner bị mã máy khách mySQL nuốt).

Thay vào đó, nó không thành công khi cố gắng truy cập tài nguyên chuỗi, trước khi tạo bộ đếm hoàn hảo. Lỗi xảy ra với dòng mã này trong Resources.Designer.cs của máy khách MySQL:

return ResourceManager.GetString("PerfMonCategoryName", resourceCulture)

Một số điều cần thử, theo thứ tự độ khó tăng dần:

  1. đảm bảo bạn có các DLL ứng dụng khách MySQL trong thư mục BIN của ứng dụng và bạn không cố tải DLL ứng dụng khách ra khỏi GAC của GoDaddy. Đừng bao giờ phụ thuộc vào các mã nhị phân do GoDaddy cung cấp nếu bạn có thể tránh được!

  2. chuyển sang văn hóa EN-US để khách hàng không phải tìm kiếm tài nguyên DLL khác và xem sự cố có biến mất không.

  3. Xây dựng ứng dụng khách .NET từ mã nguồn, thay vì sao chép DLL từ bản phân phối nhị phân vào thư mục BIN của ứng dụng của bạn. Điều này sẽ làm cho các vấn đề như thế này dễ gỡ lỗi hơn vì mã mySQL sẽ không phải là một hộp đen. Và, trong một thời gian ngắn, sẽ cho phép bạn thay đổi các lệnh gọi tìm nạp tài nguyên có vấn đề (hoặc mã hóa miền địa phương)! :-)

BTW, trong trường hợp bạn muốn đặt "Sử dụng Màn hình Hiệu suất =false" trong chuỗi kết nối của mình để cố gắng trốn tránh sự cố, đừng bận tâm. Mã có vấn đề được thực thi bất kể cài đặt đó như thế nào:

    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. Nhân bản cơ sở dữ liệu MySQL

  2. tạo kết nối trong eclipse - ClassNotFoundException:com.mysql.jdbc.Driver

  3. Có thể sử dụng SQL để sắp xếp theo ngày nhưng đặt ngày trống ở phía sau tập kết quả không?

  4. PHP MySQL - Cứ 6 hàng thì chèn một div?

  5. MySQL Store Enums như thế nào?