【问题标题】:VS 2015, C# 6, MVC5, Roslyn -- 502 gateway errors on Azure web appVS 2015、C# 6、MVC5、Roslyn -- Azure Web 应用程序上的 502 网关错误
【发布时间】:2015-12-04 15:42:24
【问题描述】:

我正在诊断此问题,我会在了解更多信息后进行更新,但我想发布我所拥有的内容,以防有快速修复/有人已经看到此问题。

我有一个 MVC5 项目,.NET 4.5.2,Visual Studio 2015。我最近开始使用 C# 6,所以为了让 Razor 工作,我必须安装 CodeDOM 编译器 Nuget 包。一切都在我的本地机器上运行(当然可以)。

我当前稳定的 Azure 站点是在一个未使用 C# 6 的 Git 提交上,但使用的是 .NET 4.5.2 和 VS 2015。所以我的最新提交和稳定提交之间唯一的大区别是引入了 C# 6 和罗斯林。

当我将新提交部署到 Azure 时,我在它旋转最多 2 分钟后始终收到 502 网关错误。在不返回视图而是返回内容操作结果的 MVC 操作上,它最终会返回内容,尽管它很慢。当我去 Kudu 并查看进程时,我可以看到 Roslyn 编译器正在运行,并且我昨晚注意到 w3wp 进程会经常重启,通常是在我收到 502 请求之后。

如果我重新部署我之前的提交,它工作正常。

我的下一步确实是使用 C# 6 和 MVC 5 将问题隔离到一个空白的 Web 应用程序,看看这是否是根本原因——但我有根据的猜测是 Roslyn 编译器的引入正在搞砸天蓝色。

有人有什么想法吗?我会在了解更多信息后更新此内容,但我还有忙碌的一天和周末。

【问题讨论】:

    标签: asp.net-mvc azure visual-studio-2015 azure-web-app-service roslyn


    【解决方案1】:

    慢慢但肯定地想通了,花了我一整天。自上次稳定提交以来,我部署了每个提交,并找到了引入问题的提交。在提交中,我介绍了更多的 TypeScript 文件。原来这些没有在 Kudu/Azure 中编译,因此缺少 JS 文件,导致我的捆绑/缩小框架(Cassette)尝试解析引用——它从未解决并导致 StackOverflow 或循环问题(单独的错误)导致我的 w3wp 进程崩溃。这就是为什么调试几乎不可能的原因,也是我的非 Razor 操作返回的原因——它们没有渲染包,因此它没有调用 Cassette。

    我将生成的 JS 文件包含在项目中并解决了问题。我想我将只编辑我的 Kudu 部署脚本并在我的 tsconfig.json 文件上手动调用 tsc 以便它在构建时正确编译。

    【讨论】:

    猜你喜欢
    • 2017-03-09
    • 2016-05-20
    • 2019-08-31
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    相关资源
    最近更新 更多