Mat*_*uGD 40 asp.net azure-web-sites asp.net-core
我有一个带有网站和几个项目库的ASP.NET 5解决方案.我正在使用MVC 6和Entity Framework 7.本地应用程序工作正常,直到今天它还在Azure上部署为Azure网站.
但是今天在Azure上进行最新部署之后,我在启动时遇到了类似错误500(仍在本地工作正常):

我试图通过以下方式获得更多细节:
似乎在启动/配置步骤期间发生了错误/异常,但我仍然在没有详细信息的情况下获得通用错误页面.甚至在服务器上生成的版本(DetailedErrors文件夹)我得到了这个:

我启用了失败的请求跟踪但仍然没有有用的信息:

即使我在启动/配置中删除代码并按照建议添加try/catch,我也得到了相同的错误而没有发现.它似乎是一个配置/编译问题,但很难在没有任何信息的情况下进行调试.
NPN*_*son 21
在Azure中运行应用程序时,在ASPNET5应用程序中启动时出现的错误很难跟踪(至少在测试版3中).希望他们找到改善体验的方法.我不得不求助于将我的创业公司剥离到裸机,然后逐行添加代码,直到失败发生(在我的情况下,它是一个缺少的环境变量).
我也使用了这样的代码(仅用于调试),这可能有所帮助,具体取决于错误发生的位置:
public void Configure(IApplicationBuilder app, IHostingEnvironment env )
{
try
{
// Add MVC to the request pipeline.
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}"
);
});
}
//exceptions in startup are really bad when running in azure, all you will get is an internal server error
//this code will write the exception message to the browser instead. Only use for debugging!!!
catch (Exception ex)
{
app.Run(async context =>
{
context.Response.ContentType = "text/plain";
await context.Response.WriteAsync(ex.Message);
});
}
}
Run Code Online (Sandbox Code Playgroud)
更新10/27/2016自我的原始答案以来,已经发生了很多变化.最新指南发布在这里:
https://docs.asp.net/en/latest/fundamentals/hosting.html
所以,添加:
WebHostBuilder上的.CaptureStartupErrors(true)和.UseSetting(WebHostDefaults.DetailedErrorsKey,"true")如下:
var host = new WebHostBuilder()
.CaptureStartupErrors(true)
.UseSetting(WebHostDefaults.DetailedErrorsKey, "true")
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
Run Code Online (Sandbox Code Playgroud)
Jon*_*vis 20
在RC1中(可能是beta8),显然应该使用:
app.UseDeveloperExceptionPage();
Run Code Online (Sandbox Code Playgroud)
..这显然只有当工作app.Properties["host.AppMode"]是"development".
但这对我不起作用.我得到的错误消息是"启动应用程序时出错",我发现没有一个给定的配置会解决这个问题,因为错误发生在配置执行之前.
不知何故,发布目标文件夹在发布期间必定已损坏,因为我发现删除整个部署目录并重新发布解决了问题.
否则,这里是参考:http://docs.asp.net/en/latest/fundamentals/diagnostics.html
您必须在web.config文件中将应用程序设置属性ASPNET_DETAILED_ERRORS设置为true.
我编辑的web.config文件的示例:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="bootstrapper-version" value="1.0.0-beta6" />
<add key="runtime-path" value="..\approot\runtimes" />
<add key="dnx-version" value="1.0.0-beta6" />
<add key="dnx-clr" value="clr" />
<add key="dnx-app-base" value="..\approot\src\MyApp" />
<!-- This will turn on detailed errors when deployed to remote servers -->
<!-- This setting is not recommended for production -->
<add key="ASPNET_DETAILED_ERRORS" value="true" />
</appSettings>
<system.web>
<httpRuntime targetFramework="4.5.1" />
</system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我在使用运行dnx-clr-win-x64.1.0.0-rc1-update1的Web应用程序时遇到了完全相同的错误.我直接从Visual Studio 2015 Enterprise Update 1进行了部署.我发现每当我在新创建的Web应用程序上进行第一次部署时,该站点都在工作.从第二次部署开始(即使部署完全相同的内容),我开始看到内部服务器错误500.这使我进入以下解决方案:
在Visual Studio的发布向导中启用"在目标中删除其他文件"为我修复了它.
| 归档时间: |
|
| 查看次数: |
16296 次 |
| 最近记录: |