【发布时间】:2019-05-17 06:12:14
【问题描述】:
你好,我所有的英雄 :) 我是 Linux 新手。我使用身份创建了一个 .net 核心 Web 应用程序。我想发布自包含的。我安装了所有必需的 linux 库。授予文件系统权限。它在我的本地虚拟机上运行。但在我的 digitalocaen 液滴上却没有。 :(请帮帮我。
这是我调用可执行文件时的控制台输出。
信息:Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0] 用户配置文件可用。使用“/root/.aspnet/DataProtection-Keys”作为密钥存储库;密钥不会在静止时加密。 应用程序启动异常:System.Exception:无法解析类型为“Microsoft.AspNetCore.Identity.UserManager
1[[cihanturan.WebUI.Areas.Admin.Models.ApplicationUser, cihanturan.WebUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' for the parameter 'userManager' of method 'Configure' on type 'cihanturan.WebUI.Startup'. ---> System.ArgumentException: Format of the initialization string does not conform to specification starting at index 84. at System.Data.Common.DbConnectionOptions.GetKeyValuePair(String connectionString, Int32 currentPosition, StringBuilder buffer, Boolean useOdbcRules, String& keyname, String& keyvalue) at System.Data.Common.DbConnectionOptions.ParseInternal(Dictionary2 可解析、字符串 connectionString、布尔 buildChain、Dictionary2 synonyms, Boolean firstKey) at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Dictionary2 同义词、布尔 useOdbcRules)的服务 在 System.Data.Common.DbConnectionStringBuilder.set_ConnectionString(字符串值) 在 Microsoft.EntityFrameworkCore.MySqlDbContextOptionsExtensions.UseMySql(DbContextOptionsBuilder optionsBuilder,字符串 connectionString,Action1 mySqlOptionsAction) at cihanturan.WebUI.Startup.<ConfigureServices>b__4_1(DbContextOptionsBuilder options) in C:\Users\Cihan\Documents\Visual Studio 2017\Projects\cihanturan\cihanturan.WebUI\Startup.cs:line 38 at Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.DbContextOptionsFactory[TContext](IServiceProvider applicationServiceProvider, Action2 optionsAction) 在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite,ServiceProviderEngineScope 范围) 在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite 构造函数CallSite,ServiceProviderEngineScope 范围) 在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite,ServiceProviderEngineScope 范围) 在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite 构造函数CallSite,ServiceProviderEngineScope 范围) 在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite,ServiceProviderEngineScope 范围) 在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite 构造函数CallSite,ServiceProviderEngineScope 范围) 在 Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite,ServiceProviderEngineScope 范围) 在 Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider 提供程序,类型 serviceType) 在 Microsoft.AspNetCore.Hosting.Internal.ConfigureBuilder.Invoke(对象实例,IApplicationBuilder 构建器) --- 内部异常堆栈跟踪结束 --- 在 Microsoft.AspNetCore.Hosting.Internal.ConfigureBuilder.Invoke(对象实例,IApplicationBuilder 构建器) 在 Microsoft.AspNetCore.Hosting.ConventionBasedStartup.Configure(IApplicationBuilder 应用程序) 在 Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication() 暴击:Microsoft.AspNetCore.Hosting.Internal.WebHost[6] 应用启动异常…………
这是 Startup.cs
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options => options.UseMySql(Configuration.GetConnectionString("DbCihanConnection")));
services.AddDbContext<ApplicationIdentityDbContext>(options => options.UseMySql(Configuration.GetConnectionString("DbCihanConnection")));
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
options.User.RequireUniqueEmail =true;
options.Password.RequiredLength = 7;
options.Password.RequireLowercase = false;
options.Password.RequireUppercase = false;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequireDigit = false;
})
.AddEntityFrameworkStores<ApplicationIdentityDbContext>()
.AddDefaultTokenProviders();
services.ConfigureApplicationCookie(options =>
{
options.AccessDeniedPath = "/Admin/Account/AccessDenied";
options.Cookie.Name = "CookieCihan";
options.LoginPath = "/Admin/Account/Login";
});
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, UserManager<ApplicationUser> userManager,RoleManager<IdentityRole> roleManager)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
app.UseStatusCodePagesWithReExecute("/Errors/Index", "?statusCode={0}");
app.UseStaticFiles();
app.UseAuthentication();
app.UseHttpsRedirection();
app.UseMvc(routes =>
{
routes.MapRoute(name: "areas",
template: "{area:exists}/{controller=Admin}/{action=Index}/{id?}");
});
app.UseMvc(routes =>
{
routes.MapRoute(name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
MyIdentityDataInitializer.SeedData(userManager, roleManager,app);
}
}
这是 Program.cs
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseDefaultServiceProvider(options=>options.ValidateScopes=false);
}
【问题讨论】:
-
你的 asp.net 核心版本是什么?对于
services.AddIdentity,它将注册所需的服务。你在 Centos 上安装了哪个运行时? -
再注意一下,你的连接字符串是什么。尝试检查连接字符串是否有效且可访问。
标签: asp.net-core asp.net-core-mvc asp.net-core-2.0 centos7 sigabrt