Режим разработки ошибок ядра ASP.NET только в области - PullRequest
2 голосов
/ 25 марта 2019

В Azure у меня развернуто небольшое приложение: https://jsnamespace.azurewebsites.net/. В localhost оно отлично работает при переходе на localhost / Admin.Однако в развернутом приложении переход к https://jsnamespace.azurewebsites.net/Admin приводит к ошибке:


Ошибка.Произошла ошибка при обработке вашего запроса.Идентификатор запроса: 0HLLGMN77UU3U: 00000001

Переключение режима разработки в среду разработки будет отображать более подробную информацию о возникшей ошибке.

Среду разработки не следует включать в развернутых приложениях, поскольку это может привести кконфиденциальная информация из исключений, отображаемых для конечных пользователей.Для локальной отладки среду разработки можно включить, задав для переменной среды ASPNETCORE_ENVIRONMENT значение Development и перезапустив приложение.


Исходный код общедоступен на GitHub: https://github.com/cdaley78/JsNamespace

Я видел другие предложения по таким вопросам, как настройка ASPNETCORE_ENVIRONMENT в Azure.Я чувствую, что в этом нет необходимости, учитывая, что все работает, кроме кода, размещенного в Area.

Чего мне не хватает?

Я попытался в Azure установить для ASPNETCORE_ENVIRONMENT значение «Разработка» в веб-приложении.-> «Настройки приложений».Это не имеет значения.

Ответы [ 2 ]

2 голосов
/ 25 марта 2019
  1. Если вы установите ASPNETCORE_ENVIRONMENT=Development (а затем перезапустите Службу приложений), вы обнаружите, что он жалуется, что не найдено связанных файлов View:

enter image description here

Эта ошибка возникает из-за неправильной установки 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 голос
/ 25 марта 2019

Похоже, вы не используете AddEnvironmentVariables . В вашем startup.cs вы должны сделать то же самое с этим

var config = new ConfigurationBuilder()
    .AddEnvironmentVariables()
    .Build();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...