我遇到了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>
8条答案
按热度按时间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
如果您使用的是Windows:
启动事件查看器-〉Windows日志-〉应用程序。
在我的情况下,我有下面的错误,并可以继续从那里(允许我的应用程序池用户访问localdb)。
异常(0x 80131904):建立与SQL Server的连接时发生与网络相关的或特定于示例的错误。找不到服务器或无法访问服务器。请验证示例名称是否正确以及SQL Server是否配置为允许远程连接。(提供程序:SQL网络接口,错误:50 -发生本地数据库运行时错误。无法创建自动示例。有关错误详细信息,请参阅Windows应用程序事件日志。
xkftehaa2#
您和我一样,可能需要安装ASP.NET!
在Windows Server 2012 R2上,可通过 * 打开或关闭Windows功能 * 功能完成此操作:
1.完成向导的 * 开始之前 、 安装类型 * 和 * 服务器选择 * 步骤。
1.在 * 服务器角色 * 下,找到 Web服务器(IIS) 节点并将其展开。
1.展开 *Web服务器 * 节点。
1.展开“应用程序开发”节点。
1.根据需要检查 ASP.NET 3.5 或 ASP.NET 4.5 节点。
1.完成 * 添加角色和功能向导 *。
k0pti3hp3#
在您的设置中,UseIISIntegration会“干扰”UseUrls,因为UseUrls设置是针对Kestrel进程而不是IISExpress/IIS的。
如果您想更改IIS端口,请查看Properties/launchSettings.json -在那里您可以配置IIS正在使用的应用程序URL。
您可以删除UseIISIntegration用于测试目的,然后您可以连接到端口5000,但您永远不应该使用Kestrel作为面向Internet的服务器,它应该始终在反向代理(如IIS或Nginx等)后面运行。
如需详细信息,请参阅the Hosting Docs Page。
1tu0hz3e4#
我使用的是IIS(我不清楚OP是否尝试使用IIS),但我没有安装.NET Core Windows Server Hosting捆绑包,如instructions like this one中所述。安装该模块后,我的应用服务(即没有500错误)
cdmah0mi5#
在asp.netvs2017中运行www.example.com MVC核心1.1项目也会出现此错误。
通过将所有NuGet Packages版本1.x升级到最新的2.x并将目标框架升级到.NET Core 2.1解决。
ukdjmx9f6#
请检查数据库一次。在我的条件下,我得到了问题的asp样板。VS17。net sdk版本2.2。只是改变应用程序设置文件,并添加任何工作数据库,并尝试再次运行项目。
b1zrtrql7#
一个可能的原因是您试图将PageModel作为参数传递。由于某种原因,该操作失败了:
如果您尝试从标准MVC架构迁移到Blazor设置,这应该足够常见。在我从模型传递了我需要的内容后,错误得到了解决。
yhived7q8#
安装Windows .NET宿主捆绑包具有.NET运行时。请确保安装与运行应用程序的版本相同的版本。https://learn.microsoft.com/en-us/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-3.1&tabs=visual-studio