Ich lese Kap. 4 von "Essential Angular für ASP.Net Core MVC" von Adam Freeman. Und ich folge mit dem Versuch, die anfängliche Datenbank für SQL Server in einem Docker-Container auszuführen. „Kein Manifest gefunden für diese SQL Server:Scheint nicht zu sein, meine .Net Core App mit SQL Server in Docker Container zu arbeiten
Hier ist seine ursprüngliche Docker-compose.yml Datei: Ich war immer ein Fehler, etwas zu den Auswirkungen auf
version: "3"
services:
database:
image: "microsoft/mssql-server-linux:ctp2 0"
ports:
- 5100:1433
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=mySecret123
Wenn ich versuche, die Anwendung mit dieser Datei auszuführen " Also änderte ich:
image: "microsoft/mssql-server-linux:ctp2 0"
zu
image: "microsoft/mssql-server-linux:latest"
und runni ng:
docker-compose up
scheint zu funktionieren.
Aber jetzt habe ich immer noch:
SqlException: Cannot open database "SportsStore" requested by the login. The login failed.
Login faild for 'sa'
Hier ist der Rest des Aufbaus.
appsettings.json
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Microsoft.EntityFrameworkCore": "Information",
"Microsoft.AspNetCore.NodeServices": "Information",
"Default": "Warning"
}
},
"Data": {
"Products": {
"ConnectionString": "Server=localhost,5100;Database=SportsStore;User Id=sa;Password=mySecret123;MultipleActiveResultSets=true"
}
}
}
Datacontext:
using Microsoft.EntityFrameworkCore;
namespace SportsStore.Models
{
public class DataContext : DbContext
{
public DataContext(DbContextOptions<DataContext> opts)
: base(opts) { }
public DbSet<Product> Products { get; set; }
public DbSet<Supplier> Suppliers { get; set; }
public DbSet<Rating> Ratings { get; set; }
}
}
StartUp.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.SpaServices.Webpack;
using SportsStore.Models;
using Microsoft.EntityFrameworkCore;
namespace SportsStore
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<DataContext>(options =>
options.UseSqlServer(Configuration["Data:Products:ConnectionString"]));
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, DataContext context)
{
app.UseDeveloperExceptionPage();
app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
{
HotModuleReplacement = true
});
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
SeedData.SeedDatabase(context);
}
}
}
Sobald alles an seinem Platz ist Ich betreibe:
dotnet ef migrations add Initial
Dann führt uns das Buch nicht dotnet ef migrations update. Wir nächsten laufen:
docker-compose up
die DB zu starten. Dann starten Sie die Anwendung und wir sollen die Ergebnisse einiger Seeding sehen.
Aber stattdessen bekomme ich den Login fehlgeschlagen Fehler für 'sa'.
Wer weiß, was hier vor sich geht?
Das [code] (https://github.com/Apress/esntl-angular-for-asp.net-core-mvc) für die Aktualisierung Buch für dich zu verweisen. Stellen Sie nur sicher, dass Sie keine Schritte verpassen. –
Denke nicht, dass mir irgendwelche Schritte fehlen. Aber ich benutze die 2.0 Updates, die er dort aufstellte, anstatt die ursprüngliche Core 1.1 Version. Er ersetzt: context.Database.Migrate mit diesem:.. if (context.Database.GetMigrations() Count()> 0 && context.Database.GetPendingMigrations() Count() == 0 && Kontext. Products.Count() == 0) { – Sam
@Sam Haben Sie das Problem behoben? – Cieja