【问题标题】:.Net Core web application returns 500 - Internal server error.Net Core Web 应用程序返回 500 - 内部服务器错误
【发布时间】:2019-11-10 10:09:37
【问题描述】:

我的新 .Net Core Web 应用程序(部署在 IIS 上)返回 500 - 内部服务器错误。

我启用了 stdoutLog,但没有创建日志文件。如何进一步调试?

添加:

这是来自 Startup.cs 的代码:

    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });       

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

...        
      }


    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseCookiePolicy();

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

【问题讨论】:

  • 它是否通过您的 IDE 运行?
  • @Fildor 是的,确实如此。
  • 日志没什么用。这只是表明特定 IP 上的特定用户代理对 favicon.ico 发出了请求,响应代码为 500,您已经知道了。打开站点目录的命令提示符,然后运行dotnet MyApp.dll。您将能够监视启动并在控制台窗口中看到记录的任何异常。如果你得到一些东西,把它和堆栈跟踪一起发布在这里。如果它启动正常,那么托管包或 IIS 设置有问题。
  • 我发现了一个问题。从 web.config 中删除了身份验证部分。现在我得到 403 - 禁止访问:访问被拒绝。设置允许匿名访问...
  • 500.19 表示配置无效。你需要使用Fiddler之类的工具来查看IIS产生的实际错误页面,从而知道你的配置文件哪一行出错了。对于 403 错误,请在执行任何其他操作之前阅读 IIS 日志文件以了解其子状态代码,support.microsoft.com/en-ca/help/943891/…

标签: iis .net-core asp.net-core-mvc


【解决方案1】:

确保你安装了这个:

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2#install-the-net-core-hosting-bundle

然后运行一个基本的 .NET Core 模板应用进行测试。也像 Chris 提到的那样,从命令行运行它以查看潜在的错误消息。

没有安装这个我得到 500。

【讨论】:

  • 谢谢布赖恩!但正如我之前在 cmets 中提到的问题,“我发现了一个问题。从 web.config 中删除了身份验证部分。现在我得到 403 - Forbidden: Access is denied. 设置允许匿名访问。”所以我想知道如何调试它。日志文件夹仍然是空的。并且 IIS 日志有 2019-07-01 18:51:49 10.0.2.7 GET / - 443 - 216.41.121.33 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML, +like+Gecko)+Chrome/75.0.3770.100+Safari/537.36 - 403 14 0 351
  • 您的 Startup.cs 是什么样的?将生成 Web 配置。你的控制器/动作上有 [Authorize] 属性吗?尝试点击一个静态 html 文件并确保你有 app.UseStaticFiles();在您的配置方法中。通常对于身份验证错误,您可以在 cookie 选项中设置拒绝访问路径。 options.AccessDeniedPath = new PathString("/Account/Login/");在 IIS 中单击 .NET 授权规则时会显示什么?
  • 我将我的 startup.cs 代码添加到我原来的问题中。到目前为止,我没有使用 [Authorize] 属性。我确实添加了一个简单的 html 页面,它出现了。 IIS 授权规则具有“允许所有用户”。 “.NET 授权规则”有什么不同吗?我没看到有这样的事情。谢谢。
猜你喜欢
  • 2021-03-25
  • 2020-03-31
  • 2012-05-05
  • 2017-08-15
  • 1970-01-01
  • 1970-01-01
  • 2021-03-02
  • 1970-01-01
  • 2016-04-02
相关资源
最近更新 更多