发布到我的Azure Web App后,我经常遇到以下500服务器错误。
如果我删除了网络应用程序,重新创建并重新发布,一切都很好。
我通过打开诊断程序(在Azure门户中)并在Visual Studio 2015的Cloud Explorer中找到详细的错误页面来检索以下错误页面:
错误页面
HTTP错误500.0 - 内部服务器错误
无法显示页面 因为发生了内部服务器错误。
最有可能的原因:
- IIS收到了请求;但是,一个内部 处理请求期间发生错误。根本原因 此错误取决于哪个模块处理请求以及什么是 发生此错误时发生在工作进程中。
- IIS不是 能够访问网站或应用程序的web.config文件。 如果NTFS权限设置不正确,则会发生这种情况。
- IIS是 无法处理网站或应用程序的配置。
- 的 经过身份验证的用户无权使用此DLL。
- 的 请求映射到托管处理程序,但.NET可扩展性 功能未安装。
您可以尝试的事情:
- 确保NTFS权限 web.config文件是正确的,并允许访问Web服务器 机器帐户。
- 检查事件日志以查看是否有其他日志 记录了信息。
- 验证DLL的权限。
- 安装 如果请求映射到托管,则.NET可扩展性功能 处理程序。
- 创建跟踪规则以跟踪此HTTP的失败请求 状态代码。有关为其创建跟踪规则的详细信息 请求失败,请点击此处。
详细错误信息:
模块 ManagedPipelineHandler
通知 MapRequestHandler
处理程序 StaticFile
错误代码 0x00000000
请求的网址 http://myurl:80/favicon.ico
物理路径 D:\ home \ site \ wwwroot \ favicon.ico
登录方法匿名
登录用户匿名
解决favicon.ico似乎存在问题。我已经从wwwroot部署中包含并排除了这一点,但没有区别。
有谁知道会出现什么问题?
注意:如果重要的话,我正在使用MSDN中的the following publish script。
这与我的previous posts之一相关。
答案 0 :(得分:1)
使用ASP.NET 5可能很难捕获错误。在Startup.cs
文件中,您有Configure
方法。将Configure
方法中的所有内容包装到这样的try-catch
块中。然后你可以慢慢构建你的应用程序,看看它什么时候爆炸。至少你会知道它不在Configure
方法中,或者如果它是,那么你现在将会有哪些额外功能引起它。您也可以在其他方法中使用此策略。
public void Configure(IApplicationBuilder app)
{
// HACK: for Azure web apps,
// the try-catch block lets us see errors that occur during configuration
try
{
app.UseErrorPage();
app.UseRuntimeInfoPage();
app.UseStaticFiles();
// add in remaining functionality one bit at a time...
}
catch (Exception ex)
{
app.Run(async (context) =>
{
await context.Response.WriteAsync(ex.ToString());
});
}
// Run on each request
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hooray. It didn't error out.");
}
}
答案 1 :(得分:1)
我的问题最终是我为我的API启用了帮助区域并将其设置为使用自动生成的XML,但未在我的解决方案中包含该XML文件(因此它未被发布到天蓝)。不知道为什么它会抱怨这个图标。
答案 2 :(得分:0)
此错误消息有点令人困惑。真正的问题在于Startup.cs。您必须通过在开发人员模式下启用应用程序来进行切换: Show ASP.NET 5 error page in Azure web app