Bonjour,
je débute en C# et essaie ma première application pour me connecter à SQL Server en local. Voici ma config :
Windows Vista Business, .net 4, SQL Server Express 2008, V Studio Express 2010.
J'ai créé un projet ConsoleApplication1, auquel j'arrive à accéder via un browser (firefox). Voici son code :
Voici ce qui s'affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 using System; using System.Data.SqlClient; namespace ConsoleApplication1 { class ConsoleApplication1 { [STAThread] // uses single threaded apartment model (STA) static void Main(string[] args) { Console.Write("Content-Type: text/html\n\n"); Console.Write("<html><head><title>Test SQL Server</title></head><body>"); System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder(); builder.DataSource="monpc\\SQLEXPRESS"; builder.IntegratedSecurity = false; builder.InitialCatalog = "mabase"; builder.UserID = "moi"; builder.Password = "secret"; Console.Write("<br/>" + builder.ConnectionString + "<br/>"); Console.Write("</body></html>"); string connectionString = builder.ConnectionString; try { SqlConnection vConnection = new SqlConnection(connectionString); } catch (Exception e) { Console.WriteLine("Exception : {0}", e); } } } }
Je précise que j'accède à cette base de données via ASP (ADODB) par les mêmes uid/pwd sans problème, et que bien entendu mon SQL Server répond sans problème.Data Source=monpc\SQLEXPRESS;Initial Catalog=mabase;Integrated Security=False;User ID=moi;Password=secret
Exception : System.TypeInitializationException: Une exception a été levée par l'initialiseur de type pour 'System.Data.SqlClient.SqlConnection'. ---> System.TypeInitializationException: Une exception a été levée par l'initialiseur de type pour 'System.Data.SqlClient.SqlConnectionFactory'. ---> System.TypeInitializationException: Une exception a été levée par l'initialiseur de type pour 'System.Data.SqlClient.SqlPerformanceCounters'. ---> System.Configuration.ConfigurationErrorsException: Échec de l'initialisation du système de configuration ---> System.Configuration.ConfigurationErrorsException: Une erreur s'est produite lors du chargement d'un fichier de configuration : Accès refusé. ---> System.Security.SecurityException: Accès refusé. à System.Security.Principal.WindowsIdentity.SafeImpersonate(SafeTokenHandle userToken, WindowsIdentity wi, StackCrawlMark& stackMark) à System.Security.Principal.WindowsIdentity.SafeRevertToSelf(StackCrawlMark& stackMark) à System.Security.Principal.WindowsIdentity.Impersonate(IntPtr userToken) à System.Configuration.ClientConfigurationHost.Impersonate() à System.Configuration.BaseConfigurationRecord.Impersonate() à System.Configuration.BaseConfigurationRecord.InitConfigFromFile() --- Fin de la trace de la pile d'exception interne --- à System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal) à System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors) à System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors() à System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey) --- Fin de la trace de la pile d'exception interne --- à System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey) à System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName) à System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName) à System.Configuration.ConfigurationManager.GetSection(String sectionName) à System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName) à System.Diagnostics.DiagnosticsConfiguration.GetConfigSection() à System.Diagnostics.DiagnosticsConfiguration.Initialize() à System.Diagnostics.DiagnosticsConfiguration.get_SwitchSettings() à System.Diagnostics.Switch.InitializeConfigSettings() à System.Diagnostics.Switch.InitializeWithStatus() à System.Diagnostics.Switch.get_SwitchSetting() à System.Data.ProviderBase.DbConnectionPoolCounters..ctor(String categoryName, String categoryHelp) à System.Data.SqlClient.SqlPerformanceCounters..ctor() à System.Data.SqlClient.SqlPerformanceCounters..cctor() --- Fin de la trace de la pile d'exception interne --- à System.Data.SqlClient.SqlConnectionFactory..cctor() --- Fin de la trace de la pile d'exception interne --- à System.Data.SqlClient.SqlConnection..cctor() --- Fin de la trace de la pile d'exception interne --- à System.Data.SqlClient.SqlConnection..ctor() à System.Data.SqlClient.SqlConnection..ctor(String connectionString) à ConsoleApplication1.ConsoleApplication1.Main(String[] args) dans E:\Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs:ligne 31
Info supplémentaire : j'ai créé sans trop y croire un fichier de config pour mon projet dont voici le contenu :
Je pense qu'il me manque des informations sur le fonctionnement de la plateforme .net. Merci à quiconque prendra pitié de mon ignorance... Je ne demande évidemment pas qu'on code à ma place, mais si quelqu'un pouvait me mettre sur la voie...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="ApplicationTitle" value="Console Application 1" /> </appSettings> </configuration>
Merci d'avance.
j'avais oublié de préciser que la connexion à SQL server fonctionne dans la console où s'affiche par exemple le contenu d'une table après requête ; il n'y a donc que dans le browser que j'ai ce long message d'erreur qui me laisse perplexe...
Partager