Ten post został ostatnio edytowany przez QWERTYU 2020-11-11 09:14
Scenariusz: Otwórz projekt .NET z bazą mysql i zainstaluj go w lokalnym środowisku programistycznym.NET MySQL connector, wszystko działa poprawnie, ale po udostępnieniu do iis program jest nieprawidłowy i komunikat o błędzie jest następujący:
Informacje o wyjątkach: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informacje o wyjątkach: Dostawca ADO.NET o stałej nazwie "MySql.Data.MySqlClient" nie jest zarejestrowany w profilu komputera ani aplikacji lub nie może być załadowany. Więcej informacji można znaleźć w sekcji Wyjątki wewnętrzne.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Znajdź problem: Okazało się, że serwer nie jest zainstalowany.NET MySQL connector, ponieważ mysql korzysta z bazy danych w chmurze Alibaba Cloud, istnieje także wiele serwerów, aby uniknąć instalacji na każdym serwerze.NET MySQL connector,Aby to zrobić, ustawiłem odwołania MySQL na "lokalną kopię", aby móc je skopiować do folderu bin i dodać następujące do app.config:
Po dodaniu powyższej konfiguracji działa to dobrze na serwerze i mogę wdrożyć aplikację bez instalowania złącza MySQL na serwerze, ale teraz mam problem na moim lokalnym komputerze deweloperskim (z zainstalowanym złączem MySQL) i pojawia się ten błąd, gdy próbuję połączenia EF: Informacje o wyjątkach: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> informacje o wyjątkach: Dostawca ADO.NET o stałej nazwie "MySql.Data.MySqlClient" nie jest zarejestrowany w profilu komputera ani aplikacji lub nie może być załadowany. Więcej informacji można znaleźć w sekcji Wyjątki wewnętrzne. InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。 Spróbuj akcji: Jeśli skomentuję XML dodane powyżej w konfiguracji, błąd znika. Może to wynikać z faktu, że ten sam sterownik jest zainstalowany na systemie i znajduje się w pliku machine.config. Ostateczne rozwiązanie i dlaczego:
Spróbuj dodać <remove invariant="MySql.Data.MySqlClient" /> w swojej konfiguracji web. Na twoim komputerze masz już zainstalowany konektor MySql i modyfikujesz swój machine.config, dodając go w DbProviderFactory. Więc jeśli dodasz innego dostawcę danych MySQL w swoim web.config, to tak, jakbyś próbował zarejestrować tę samą rzecz dwa razy.
|