MySQL e amp; .NET: System.ArgumentException: il formato della stringa di inizializzazione non è conforme alle specifiche a partire dall'indice 0
Domanda
Volevo usare SubSonic perché diceva che sarebbe stato facile da usare e un risparmio di tempo.
Dopo 3 ore cercando di ottenere la stringa di connessione per MySQL, sto per rinunciarvi.
Building configuration from C:\Documents and Settings\user\My Documents\Visual Studio 2
008\Projects\ConfigurationItems\ConfigurationItemsMVC\Web.config
Adding connection to MySqlDataProvider
ERROR: Trying to execute generate
Error Message: System.ArgumentException: Format of the initialization string does not conform to specification starting at index 0.
Non posso spostare questo: Messaggio di errore: System.ArgumentException: il formato della stringa di inizializzazione non è conforme alle specifiche a partire dall'indice 0.
Lo capisco ogni volta che provo ad eseguire subsonic.exe / generate
È STATO TUTTO SEMPLICE !!!
Ecco il mio Web.Config
<!-- connectionString="Persist Security Info=False;database=config;server=localhost;user id=config;Password=config" -->
<connectionStrings>
<remove name="ConfigConnectString"/>
<add name="ConfigConnectString" connectionString="Persist Security Info=False;database=config;server=localhost;user id=userid;Password=password" providerName="MySql.Data.MySqlClient"
/>
</connectionStrings>
<SubSonicService defaultProvider="ConfigDatabase">
<providers>
<add type="SubSonic.MySqlDataProvider, SubSonic"
name="MySqlDataProvider"
generatedNamespace="Config"
connectionStringName="ConfigConnectString"
/>
</providers>
</SubSonicService>
Ho provato alcune cose:
- Specifica del percorso di webconfig usando / config sul percorso dello strumento esterno.
- Downgrade dal connettore MySQL 6.0 di 6.0 all'ultima versione 5.2 in linea con gli esempi.
- Aggiunta di MySQL.Data come riferimento direttamente dalla cartella SubSonic alla DLL presente.
- Prova di vari formati per la stringa di connessione, basata su http://www.connectionstrings.com/mysql # 28
(altra stringa di connessione: " Server = localhost; Database = config; Uid = user; Pwd = password; " - anche " blah " / " qualunque cosa " genera lo stesso errore ...)
Nessuna gioia! Molto vicino a rinunciare a SubSonic. Aiutatemi se potete!
A proposito sto usando Subsonic 2.2
Soluzione
Sono un idiota:
<SubSonicService defaultProvider="ConfigDatabase">
Dovrebbe essere:
<SubSonicService defaultProvider="MySqlDataProvider">
Doh!
Altri suggerimenti
Suppongo che si aspetti un ' {0}
' da qualche parte, poiché questo è l'errore che si ottiene quando si dimentica (IIRC).
Controlla questo blog per ulteriori informazioni sul formato della stringa di inizializzazione