यह कनेक्टर/नेट में एक बग प्रतीत होता है, जो bug 75301
के समान है। लेकिन थोड़ा अलग। जब यह प्रक्रिया के लिए पैरामीटर मेटाडेटा निर्धारित करने का प्रयास कर रहा है, तो यह पहले एक MySqlSchemaCollection
बनाता है नामित Procedures
सभी . के साथ प्रक्रिया के बारे में मेटाडेटा। (यह SELECT * FROM information_schema.routines WHERE 1=1 AND routine_schema LIKE 'Spike' AND routine_name LIKE 'TestAccess'
क्वेरी जो आप अपने लॉग में देखते हैं।)
Spike
उपयोगकर्ता खाते को ROUTINE_DEFINITION
पढ़ने की अनुमति नहीं है कॉलम, तो यह NULL
है . कनेक्टर/नेट उम्मीद करता है कि यह फ़ील्ड गैर-नल हो और एक SqlNullValueException
फेंकता है अपवाद इसे पढ़ने की कोशिश कर रहा है।
दो समाधान हैं:
1) पहला, जो आपने खोजा है, वह है CheckParameters=False
. सेट करना आपके कनेक्शन स्ट्रिंग में। यह संग्रहीत प्रक्रिया मेटाडेटा (दुर्घटना से बचने) की पुनर्प्राप्ति को अक्षम कर देगा, लेकिन यदि आपको ऑर्डर और प्रकार के पैरामीटर बिल्कुल सही नहीं मिलते हैं तो अन्य संग्रहीत प्रक्रियाओं को कॉल करने में कठिन-से-डीबग समस्याएं हो सकती हैं। (कनेक्टर/नेट अब मेटाडेटा का उपयोग करके उन्हें आपके लिए मैप नहीं कर सकता।)
2) किसी भिन्न ADO.NET MySQL लाइब्रेरी में स्विच करें जिसमें यह बग न हो:MySqlConnector NuGet पर . यह कनेक्टर/नेट के साथ अत्यधिक संगत है, तेजी से प्रदर्शन करता है, और बहुत सारे ज्ञात मुद्दे ।