2017-04-05 1 views
2

Ich versuche, meine asp net Kernanwendung mit meiner Datenbank mit Microsoft SQL Server Management aber bei meiner ersten Migration ich diesen Fehler erstellt zu verbinden:Asp Net Kern: Anbindung an bestehenden SqlServer

System.ArgumentException: Format of the initialization string does not conform to specification starting at index 0. 
    at System.Data.Common.DbConnectionOptions.GetKeyValuePair(String connectionString, Int32 currentPosition, StringBuilder buffer, String& keyname, String& keyvalue) 
    at System.Data.Common.DbConnectionOptions.ParseInternal(Dictionary`2 parsetable, String connectionString, Boolean buildChain, Dictionary`2 synonyms) 
    at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Dictionary`2 synonyms) 
    at System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) 
    at System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous) 
    at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) 
    at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key) 
    at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value) 
    at Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection.CreateDbConnection() 
    at Microsoft.EntityFrameworkCore.Internal.LazyRef`1.get_Value() 
    at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) 
    at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType) 
    at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_1.<.ctor>b__0() 
    at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action) 
Format of the initialization string does not conform to specification starting at index 0. 

I don‘ Ich weiß, was ich falsch mache, wenn mir jemand helfen kann.

Hier ist meine Verbindungszeichenfolge:

"Data": { 
    "DefaultConnection": { 
     "ConnectionString": "Data Source=..\\SQLSERVER;Initial Catalog=dbfichetips;Integrated Security=True;" 
    } 

Und mein Startup.cs

public class Startup 
{ 
    public Startup(IHostingEnvironment env) 
    { 
     var builder = new ConfigurationBuilder() 
      .SetBasePath(env.ContentRootPath) 
      .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) 
      .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) 
      .AddEnvironmentVariables().Build(); 
    } 


    // This method gets called by the runtime. Use this method to add services to the container. 
    public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddMvc(); 

     services.AddDbContext<ApplicationDbContext>(
      options => options.UseSqlServer("Data:DefaultConnection:ConnectionString")); 

     services.AddIdentity<ApplicationUser, ApplicationRole>() 
      .AddEntityFrameworkStores<ApplicationDbContext, int>() 
      .AddDefaultTokenProviders(); 

     services.Configure<IdentityOptions>(options => 
     { 
      //Password settings 
      options.Password.RequireDigit = false; 
      options.Password.RequiredLength = 6; 
      options.Password.RequireLowercase = false; 
      options.Password.RequireNonAlphanumeric = false; 
      options.Password.RequireUppercase = false; 
     }); 

    } 

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 
    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, ApplicationDbContext applicationDbContext) 
    { 
     loggerFactory.AddConsole(); 
     loggerFactory.AddDebug(); 

     if (env.IsDevelopment()) 
     { 
      app.UseDeveloperExceptionPage(); 
      app.UseBrowserLink(); 
      applicationDbContext.Database.Migrate(); 
     } 
     else 
     { 
      app.UseExceptionHandler("/Home/Error"); 
     } 

     app.UseIdentity(); 
     app.UseStaticFiles(); 

     app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Home}/{action=Index}/{id?}"); 
     }); 
    } 
} 
+0

Ich bin nicht sicher, ob '= .. \\' in der Datenquelle Property gültig ist – Smartis

+0

Das ist, was ich bekomme, wenn ich sehe Eigenschaften von meinem Server auf Server-Explorer Edit: = i Diese Datenquelle erhalten KA- 003 \\ SQLSERVER; aber der Fehler ist immer noch hier – Elykx

+0

Versuchen Sie '= {SQL-Server-IP-Adresse hier einfügen} \ SQLSERVER;' als Datenquelle Eigenschaft – Smartis

Antwort

6

UseSqlServer erwartet "echte" Verbindungszeichenfolge, nicht in der Konfiguration keyname.

Statt

services.AddDbContext<ApplicationDbContext>(
     options => options.UseSqlServer("Data:DefaultConnection:ConnectionString")); 

benötigen Sie

services.AddDbContext<ApplicationDbContext>(
     options => options.UseSqlServer(builder["Data:DefaultConnection:ConnectionString"])); 

Und sparen builder in Variable/Objekt - zur Zeit ist es Müll gesammelt, nachdem Startup Konstruktor erfolgt.

+0

Danke, es funktioniert jetzt – Elykx