Αυτή η ανάρτηση επεξεργάστηκε τελευταία φορά από το χρήστη QWERTYU στις 2020-11-11 09:14
Σενάριο: Ανοίξτε ένα έργο .NET χρησιμοποιώντας τη βάση δεδομένων mysql και εγκαταστήστε το στο περιβάλλον τοπικής ανάπτυξης.NET MySQL connector, όλα λειτουργούν καλά, αλλά όταν κυκλοφορεί στις υπηρεσίες IIS, το πρόγραμμα είναι μη φυσιολογικό και το μήνυμα σφάλματος είναι το εξής:
Πληροφορίες εξαίρεσης: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> πληροφορίες εξαίρεσης: Ο πάροχος ADO.NET με το σταθερό όνομα "MySql.Data.MySqlClient" δεν είναι εγγεγραμμένος στο προφίλ του υπολογιστή ή της εφαρμογής ή δεν μπορεί να φορτωθεί. Για περισσότερες πληροφορίες, δείτε: Εσωτερικές Εξαιρέσεις.
InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。
Βρείτε το πρόβλημα: Διαπιστώθηκε ότι ο διακομιστής δεν είναι εγκατεστημένος.NET MySQL connector, επειδή η mysql χρησιμοποιεί τη βάση δεδομένων cloud του Alibaba Cloud, υπάρχουν επίσης πολλοί διακομιστές, προκειμένου να αποφευχθεί η εγκατάσταση σε κάθε διακομιστήΣύνδεση .NET MySQL,Για να το κάνω αυτό, φρόντισα να ορίσω τις αναφορές MySQL σε "τοπικό αντίγραφο", ώστε να μπορώ να τις αντιγράψω στο φάκελο bin και να προσθέσω τα ακόλουθα στο app.config μου:
Μετά την προσθήκη της παραπάνω διαμόρφωσης, λειτουργεί καλά στον διακομιστή και μπορώ να αναπτύξω την εφαρμογή χωρίς να εγκαταστήσω την υποδοχή MySQL στον διακομιστή, αλλά τώρα έχω ένα πρόβλημα στον τοπικό μου υπολογιστή προγραμματιστή (με εγκατεστημένη την υποδοχή MySQL) και λαμβάνω αυτό το σφάλμα όταν δοκιμάζω τη σύνδεση EF: Πληροφορίες εξαίρεσης: System.Data.Entity.Infrastructure.DependencyResolution.DefaultProviderFactoryResolver. <GetService>b__0---> πληροφορίες εξαίρεσης: Ο πάροχος ADO.NET με το σταθερό όνομα "MySql.Data.MySqlClient" δεν είναι εγγεγραμμένος στο προφίλ του υπολογιστή ή της εφαρμογής ή δεν μπορεί να φορτωθεί. Για περισσότερες πληροφορίες, δείτε: Εσωτερικές Εξαιρέσεις. InnerException:System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。 Δοκιμάστε τη δράση: Εάν σχολιάσω το XML που προστέθηκε παραπάνω στη διαμόρφωση, το σφάλμα εξαφανίζεται. Αυτό μπορεί να οφείλεται στο γεγονός ότι το ίδιο πρόγραμμα οδήγησης είναι εγκατεστημένο στο σύστημα και βρίσκεται στο machine.config. Η τελική λύση και γιατί:
Δοκιμάστε να προσθέσετε <remove invariant="MySql.Data.MySqlClient" /> στο webconfig σας. Στο μηχάνημά σας, έχετε ήδη εγκαταστήσει τη σύνδεση MySql και τροποποιείτε το machine.config προσθέτοντας ένα στο DbProviderFactories. Έτσι, αν βάλετε έναν άλλο πάροχο δεδομένων MySql στο web.config σας, είναι σαν να προσπαθήσατε να καταχωρήσετε το ίδιο πράγμα δύο φορές.
|