仅在区域中的ASP.NET核心错误开发模式

时间:2019-03-25 00:32:17

标签: c# asp.net azure github asp.net-core

在Azure中,我部署了一个小型应用程序:https://jsnamespace.azurewebsites.net/。 在localhost中,当导航到localhost / Admin时,它可以完美地工作。 但是,在已部署的应用程序中,导航到https://jsnamespace.azurewebsites.net/Admin会产生错误:


错误。 处理您的请求时发生错误。 要求编号:0HLLGMN77UU3U:00000001

开发模式 切换到开发环境将显示有关所发生错误的更多详细信息。

不应在已部署的应用程序中启用开发环境,因为它可能导致异常显示的敏感信息显示给最终用户。对于本地调试,可以通过将ASPNETCORE_ENVIRONMENT环境变量设置为Development并重新启动应用程序来启用开发环境。


源代码可在GitHub上公开获得: https://github.com/cdaley78/JsNamespace

对于诸如在Azure中设置ASPNETCORE_ENVIRONMENT之类的问题,我已经看到了其他建议。考虑到除“区域”中的代码之外的所有其他方法,我认为这没有必要。

我想念什么?

我曾尝试在Azure中将Web应用程序->“应用程序设置”中的ASPNETCORE_ENVIRONMENT设置为“开发”。没关系。

2 个答案:

答案 0 :(得分:2)

  1. 如果您设置 ASPNETCORE_ENVIRONMENT=Development (然后重新启动应用服务),则会发现它抱怨找不到相关的View文件:

enter image description here

发生此错误是因为您在the wrong way中设置了Admin/Home/Index.cshtml

    <Compile Remove="Areas\**" />
    <Content Remove="Areas\**" />
    <EmbeddedResource Remove="Areas\**" />
    <None Remove="Areas\**" />

    ...

    <Compile Include="Areas\Admin\Controllers\HomeController.cs" />

    ...

    <None Include="Areas\Admin\Views\Home\Index.cshtml" />
  1. 要解决该问题,请删除Areas/Admin周围那些不必要的配置,如下所示:
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
    <DebugType>full</DebugType>
  </PropertyGroup>

  <ItemGroup>
    <!-- <Compile Remove="Areas\**" />
    <Content Remove="Areas\**" />
    <EmbeddedResource Remove="Areas\**" />
    <None Remove="Areas\**" /> -->
  </ItemGroup>

  <ItemGroup>
    <Content Remove="bundleconfig.json" />
    <Content Remove="compilerconfig.json" />
  </ItemGroup>

  <ItemGroup>
    <_ContentIncludedByDefault Remove="compilerconfig.json" />
  </ItemGroup>

  <ItemGroup>
    <!-- <Compile Include="Areas\Admin\Controllers\HomeController.cs" /> -->
  </ItemGroup>

  <ItemGroup>
    <!-- <None Include="Areas\Admin\Views\Home\Index.cshtml" /> -->
    <None Include="bundleconfig.json" />
    <None Include="compilerconfig.json" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore" Version="2.1.7" />
    <PackageReference Include="Microsoft.AspNetCore.CookiePolicy" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.3" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.1.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="Areas\Admin\Data\" />
    <Folder Include="Areas\Admin\Models\" />
  </ItemGroup>

</Project>
  1. 现在对我来说很好:

enter image description here

答案 1 :(得分:1)

看起来您没有使用 AddEnvironmentVariables 。在您的a.masonry-item { text-decoration: none !important; color: red; } 中,您应该这样做

startup.cs