Visual Studio HTTP错误500:localhost当前无法处理此请求

dm7nw8vv  于 2022-11-17  发布在  其他
关注(0)|答案(8)|浏览(214)

我遇到了HTPP错误500,我不知道为什么。当我启动我的服务时,我打开Chrome浏览器并导航到http://localhost:5000,错误弹出。Chrome开发者工具窗口显示了这个错误:

Failed to load resource: the server responded with a status of 500 (Internal Server Error) http://localhost:5000/

下面是我的Startup.cs文件(为简单起见,不包括using语句):

namespace Tuner
{
    public class Startup
    {
        public static void Main(string[] args)
        {
            var exePath = Process.GetCurrentProcess().MainModule.FileName;
            var directoryPath = Path.GetDirectoryName(exePath);

                                var host = new WebHostBuilder()
               .CaptureStartupErrors(true)
               .UseKestrel()
               .UseUrls("http://localhost:5000")
               .UseContentRoot(Directory.GetCurrentDirectory())
               .UseIISIntegration()
               .UseStartup<Startup>()
               .Build();
            host.Run();
        }

        public Startup(IHostingEnvironment env)
        {
            //Setup Logger
            Log.Logger = new LoggerConfiguration()
                .WriteTo.Trace()
                .MinimumLevel.Debug()
                .CreateLogger();
            // Set up configuration sources.
            var builder = new ConfigurationBuilder()
                .SetBasePath(env.ContentRootPath)
                .AddJsonFile("appsettings.json");
            //.AddEnvironmentVariables();
            Configuration = builder.Build();
        }

        public IConfigurationRoot Configuration { get; set; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSwaggerGen();

            services.AddMvc().AddJsonOptions(options =>
            {
                options.SerializerSettings.ContractResolver =
                    new CamelCasePropertyNamesContractResolver();
            });
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime lifetime)
        {

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();

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

            lifetime.ApplicationStopping.Register(() =>
            {
                Log.Debug("Application Stopping. Do stuff.");
            });
        }
    }
}

在MVC中,这会导致调用HomeController Index方法:

namespace Tuner.Controllers
{
    public class HomeController : Controller
    {
        public string appVersion = typeof(HomeController).Assembly.GetName().Version.ToString();
        public string appName = "Empty Web App";

        [HttpGet("/")]
        public IActionResult Index()
        {
            var url = Request.Path.Value;
            if (url.EndsWith(".ico") || url.EndsWith(".map"))
            {
                return new StatusCodeResult(404);
            }
            else
            {
                // else block is reached
                return View("~/Views/Home/Index.cshtml");
            }
        }

        public IActionResult Error()
        {
            return View("~/Views/Shared/Error.cshtml");
        }

        [HttpGetAttribute("app/version")]
        public string Version()
        {
            return appVersion;

        }

        [HttpGetAttribute("app/name")]
        public string ProjectName()
        {
            return appName;
        }
    }
}

下面是我的Index.cshtml文件(它已经被放置在Views/Home中):

@{
    ViewBag.Title = "Tuner";
}

@section pageHead {
}

@section scripts {
    <script src="~/vendor.bundle.js"></script> 
    <script src="~/main.bundle.js"></script>

}

<cache vary-by="@Context.Request.Path">
    <app>Loading content...</app>
</cache>
rbl8hiat

rbl8hiat1#

按照本指南操作后,我在IIS 10.0上安装ASP.NET Core 3.1应用程序时遇到以下错误:
https://learn.microsoft.com/en-us/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-3.1&tabs=visual-studio

This page isn't working
localhost is currently unable to handle this request.
HTTP ERROR 500

如果您使用的是Windows:
启动事件查看器-〉Windows日志-〉应用程序。

在我的情况下,我有下面的错误,并可以继续从那里(允许我的应用程序池用户访问localdb)。
异常(0x 80131904):建立与SQL Server的连接时发生与网络相关的或特定于示例的错误。找不到服务器或无法访问服务器。请验证示例名称是否正确以及SQL Server是否配置为允许远程连接。(提供程序:SQL网络接口,错误:50 -发生本地数据库运行时错误。无法创建自动示例。有关错误详细信息,请参阅Windows应用程序事件日志。

xkftehaa

xkftehaa2#

您和我一样,可能需要安装ASP.NET!
在Windows Server 2012 R2上,可通过 * 打开或关闭Windows功能 * 功能完成此操作:
1.完成向导的 * 开始之前 安装类型 * 和 * 服务器选择 * 步骤。
1.在 * 服务器角色 * 下,找到 Web服务器(IIS) 节点并将其展开。
1.展开 *Web服务器 * 节点。
1.展开“应用程序开发”节点。
1.根据需要检查 ASP.NET 3.5ASP.NET 4.5 节点。
1.完成 * 添加角色和功能向导 *。

k0pti3hp

k0pti3hp3#

在您的设置中,UseIISIntegration会“干扰”UseUrls,因为UseUrls设置是针对Kestrel进程而不是IISExpress/IIS的。
如果您想更改IIS端口,请查看Properties/launchSettings.json -在那里您可以配置IIS正在使用的应用程序URL。
您可以删除UseIISIntegration用于测试目的,然后您可以连接到端口5000,但您永远不应该使用Kestrel作为面向Internet的服务器,它应该始终在反向代理(如IIS或Nginx等)后面运行。
如需详细信息,请参阅the Hosting Docs Page

1tu0hz3e

1tu0hz3e4#

我使用的是IIS(我不清楚OP是否尝试使用IIS),但我没有安装.NET Core Windows Server Hosting捆绑包,如instructions like this one中所述。安装该模块后,我的应用服务(即没有500错误)

cdmah0mi

cdmah0mi5#

在asp.netvs2017中运行www.example.com MVC核心1.1项目也会出现此错误。
通过将所有NuGet Packages版本1.x升级到最新的2.x并将目标框架升级到.NET Core 2.1解决。

ukdjmx9f

ukdjmx9f6#

请检查数据库一次。在我的条件下,我得到了问题的asp样板。VS17。net sdk版本2.2。只是改变应用程序设置文件,并添加任何工作数据库,并尝试再次运行项目。

b1zrtrql

b1zrtrql7#

一个可能的原因是您试图将PageModel作为参数传递。由于某种原因,该操作失败了:

  • 系统不支持异常:不支援'GT.ADS.Web.Pages.Error1Model.TempData'上的集合类型'Microsoft.AspNetCore.Mvc.ViewFeatures.ITempDataDictionary'。*

如果您尝试从标准MVC架构迁移到Blazor设置,这应该足够常见。在我从模型传递了我需要的内容后,错误得到了解决。

yhived7q

yhived7q8#

安装Windows .NET宿主捆绑包具有.NET运行时。请确保安装与运行应用程序的版本相同的版本。https://learn.microsoft.com/en-us/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-3.1&tabs=visual-studio

相关问题