【问题标题】:Hosting Asp.Net Core 2 on IIS在 IIS 上托管 Asp.Net Core 2
【发布时间】:2018-09-22 03:48:19
【问题描述】:

通过 Visual Studio 在 ApplicationName 和 IISExpress 中以发布/调试模式启动时,我的应用程序运行良好。

但是一旦部署到 IIS 并启动,我就无法访问主页(主控制器),并且还有导航栏问题和 JQuery 问题。我已经在调试/发布模式下发布了应用程序,但无济于事。

我的问题主要是如何解决这个问题?该应用程序的运行方式应该与在 iisexpress 上本地运行的方式相同,对吧?即使文件丢失(如在调试/发布环境中),也应该按原样访问 Home 控制器?

非常感谢任何帮助并等待发布基于 cmets 的更多信息和日志。

编辑 1(包括 Startup.cs):

using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.DependencyInjection;
using MTAClassLib.Configuration;
using System.IO;

namespace MTALib
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var host = BuildWebHost(args);
            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;
                var RoleManager = services.GetRequiredService<RoleManager<IdentityRole>>();
                UserRoleSeed.Seed(RoleManager).Wait();
            }
            BuildWebHost(args).Run();
        }
    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .Build();
     }
}

【问题讨论】:

    标签: asp.net iis hosting asp.net-core-2.0 iis-express


    【解决方案1】:

    ASP.NET Core 2.0 的托管与 ASP.NET 中的托管略有不同。

    你需要Install the .NET Core Hosting Bundle

    另外,请确保您的应用程序池 >> .NET CLR 版本 应该是无托管代码

    更多详情请参考Host ASP.NET Core on Windows with IIS

    【讨论】:

    • 这就是我所做的。但是我无法访问我的主页(主页控制器中的索引操作)并且即​​使启用了 Windows 身份验证,也无法实现 Windows 身份验证。
    • 你检查Configure Windows authentication in ASP.NET Core了吗?也尝试分享您的Startup.cs 内容
    【解决方案2】:

    我在 IIS 上运行 ASP.Net Core 2 时遇到了同样的问题。我不得不

    1. 安装 .NET Core 托管包。如果您还没有这样做,可以下载https://aka.ms/dotnetcore-2-windowshosting
    2. 安装 Hosting Bundle 后在命令行窗口中运行 IISReset
    3. 确保您的 project.cs BuildWebHost 方法如下所示

      public static IWebHost BuildWebHost(string[] args) =>
          WebHost.CreateDefaultBuilder(args)
              .UseKestrel()
              .UseContentRoot(Directory.GetCurrentDirectory())
              .UseIISIntegration()
              .UseStartup<Startup>()
              .Build();}
      
    4. 我不必将应用程序池更改为 .NET CLR 版本为“无托管代码”。它仍然是“.Net CLR Version v4.0.30319”

    5. 编辑 web.config 并将 stdoutLogEnabled 更改为 true。
    6. 在已发布的文件夹中手动创建日志文件夹。

    这解决了我的问题。

    【讨论】:

      【解决方案3】:

      安装“dotnet-hosting-2.1.2-win.exe”并重置 IIS 为我解决了这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-18
        • 1970-01-01
        • 1970-01-01
        • 2018-02-17
        • 1970-01-01
        • 2018-02-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多