在本地IIS Windows 10上托管ASP CORE 2.1

时间:2018-08-15 11:28:13

标签: c# asp.net iis asp.net-core

我有一个用C#网站编写的ASP CORE 2.1,它在IIS Express中运行完美,并托管在Azure上。但是,当我尝试自己在本地IIS上托管它,或者只是从IIS中的Visual Studio(不表示)运行它时,它不起作用。我懂了 无法访问该网站 本地主机拒绝连接。 一直在2撞我的头两天了,我没近。请帮忙。

要添加详细信息:

程序看起来像这样(使用我今天添加的茶est)

 public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseKestrel()
            .UseIISIntegration()
            .Build();
}

像这样启动

  public class Startup
{
    public IConfiguration Configuration { get; set; }

    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
        services.AddIdentity<ApplicationUser, IdentityRole>(config => { config.SignIn.RequireConfirmedEmail = true; })
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders();
        services.AddTransient<IEmailSender, EmailSender>();
        services.AddSingleton(_ => Configuration);
        services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
        services.AddMvc();
        services.Configure<AuthMessageSenderOptions>(Configuration);
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseBrowserLink();
            app.UseDeveloperExceptionPage();
            app.UseDatabaseErrorPage();

        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }

        app.UseStaticFiles();

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


    }
}

IIS像这样: enter image description here

应用程序池如下: enter image description here

考虑其安全性。昨晚我创建并信任了本地开发人员证书...不确定我是否做对了,但是在那里...我是否必须以某种方式告诉我的网站进行特定查找?

正如我所说,IIS表现完美,Azure完美,所以我只是不知道该怎么办。我被困住时问我,不要偷懒。我已经安装了IIS软件,重新启动,安装了正确的运行时宿主软件,然后重新启动。

另外,发现这是日志:

  

警告:Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository [50]         使用内存中的存储库。密钥将不会持久存储。

     

警告:Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager [59]         用户个人资料和HKLM注册表均不可用。使用临时密钥存储库。当应用程序退出时,受保护的数据将不可用。

     

警告:Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager [35]         未配置XML加密器。密钥{cfc3f092-a4fc-4b5b-9a64-e7d35b02feff}可以以未加密形式持久存储。   托管环境:生产   内容根路径:D:\ IIS \ SALUSUAVWEBAPP   现在收听:http://127.0.0.1:6396   应用程序已启动。按Ctrl + C关闭。

     

警告:Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware [3]         无法确定要重定向的https端口。

我现在正在调查...这是原因还是仅仅是警告,这不是我真正的问题?

1 个答案:

答案 0 :(得分:0)

好吧,答案是绑定...我没有设置https ... 文档并没有表明这一点,由于缺乏该领域的经验,我没有想到...自己的错。无论如何...要去阅读有关https和证书的所有内容,因为这是我的下一个噩梦...我该如何解决这个问题,以便人们可以给我打电话...

enter image description here