Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyjątek bezpieczeństwa przy użyciu MySQL i Entity Framework na godaddy

Dziwny. Aplikacje GoDaddy hostingu współdzielonego ASP.NET są wykonywane w ramach średniego zaufania, a tworzenie licznika wydajności prawdopodobnie wymaga pełnego zaufania, ale tworzenie licznika wydajności nie jest tutaj błędem. (a gdyby się to nie udało, nie rozprzestrzeniłoby się, ponieważ wyjątki tworzenia liczników wydajności są połykane przez kod klienta mySQL).

Zamiast tego nie udaje się uzyskać dostępu do zasobu ciągu przed utworzeniem licznika wydajności. Błąd dotyczy tego wiersza kodu w Resources.Designer.cs klienta MySQL:

return ResourceManager.GetString("PerfMonCategoryName", resourceCulture)

Kilka rzeczy do wypróbowania w kolejności rosnącej trudności:

  1. upewnij się, że masz biblioteki DLL klienta MySQL w katalogu BIN swojej aplikacji i nie próbujesz załadować biblioteki DLL klienta z GAC GoDaddy. Nigdy nie polegaj na plikach binarnych dostarczonych przez firmę GoDaddy, jeśli możesz tego uniknąć!

  2. przełącz się na kulturę EN-US, aby klient nie musiał polować na inną bibliotekę DLL zasobów i sprawdzić, czy problem zniknie.

  3. Skompiluj klienta .NET z kodu źródłowego, zamiast kopiować biblioteki DLL z dystrybucji binarnej do katalogu BIN aplikacji. Ułatwi to debugowanie takich problemów, ponieważ kod mySQL nie będzie czarną skrzynką. I w mgnieniu oka pozwoli Ci zmienić problematyczne wywołania pobierania zasobów (lub na stałe zakodować ustawienia regionalne)! :-)

BTW, jeśli masz ochotę ustawić "Use Performance Monitor=false" w ciągu połączenia, aby spróbować uniknąć problemu, nie przejmuj się. Problematyczny kod zostanie wykonany niezależnie od tego ustawienia:

    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. pobranie nazwy rodzica kategorii podrzędnej za pomocą jednego zapytania w mysql

  2. Sqlalchemy zwraca nieaktualne wiersze?

  3. Jak zresetować hasło administratora WordPress za pomocą wiersza polecenia MySQL?

  4. Jak utworzyć księgę główną/konto T za pomocą PHP Mysql

  5. MySQL porównuje teraz() (tylko data, nie czas) z polem daty i godziny