【问题标题】:host ASP CORE 2.1 on local IIS windows 10在本地 IIS windows 10 上托管 ASP CORE 2.1
【发布时间】:2018-08-15 11:28:13
【问题描述】:

我有一个用 c# 编写的 ASP CORE 2.1 网站,它在 IIS express 中完美运行并托管在 azure 上。但是当我尝试自己在本地 IIS 上托管它或者只是从 IIS 中的 Visual Studio 运行它(不是 express)时,它不起作用。我明白了 无法访问此站点 localhost 拒绝连接。 已经敲了我的头两天了,我离得更近了。请帮忙。

添加细节:

程序长这样(使用我今天添加的红隼)

 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 像这样:

这样的应用程序池:

认为它与安全有关。昨晚我创建并信任本地开发证书...不确定我做对了但它在那里...我是否必须以某种方式告诉我的网站专门寻找它?

正如我所说,IIS express 完美,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 端口。

我现在正在调查这件事……是这个原因还是只是对某些不是我真正问题的事情的警告?

【问题讨论】:

  • 你在你的电脑上做了什么才能让它工作?你关注the documentation on hosting ASP.NET Core on IIS了吗?您采取了哪些具体步骤?此外,即使是微软也表示尝试从 Visual Studio 在 IIS 上运行 ASP.NET Core 无法正常工作
  • 我遵循了这些步骤。如果我不能在 IIS 中托管,您知道如何在本地托管它,以便我可以从我的机器上对其进行测试,并让其他人不在我的机器上进行测试吗?在我准备好上线之前,它将为我节省一大笔天蓝色的成本
  • 如果您可以在 Azure 上的 免费 实例上使用它,它可以为您节省多少?而且你当然没有遵循每一步,因为这些都很好。
  • 我很确定我遵循了每一步,现在几次。我有一个大型数据库,所以在 azure 上托管很昂贵,我有一个开发许可证,所以我可以用它在本地进行测试和开发。
  • 因为许多其他人(包括我)可以按照 Microsoft 文档在 IIS 上本地运行 ASP.NET Core,所以如果您不打算通过编辑问题来显示更多详细信息,则不可能得到答复。

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


【解决方案1】:

好的,答案是绑定...我没有设置 https... 文档没有显示这一点,并且由于缺乏这方面的经验,我没有考虑过……自己的错。无论如何...要去阅读有关 https 和证书的所有信息,因为那是我的下一个噩梦...我该如何解决这个问题,以便人们可以打电话给我...

【讨论】:

    猜你喜欢
    • 2019-03-18
    • 2017-02-20
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多