служить .net ядро ​​и угловое приложение 5 на локальном IIS - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть следующие настройки:

  • Приложение .net core web api 2.1.x
  • Угловое приложение в отдельном проекте

Я бы хотел разместить их обоих на одном сайте iis, чтобы они выглядели так:

localhost\Site\ < --- angular app
localhost\Site\Api\ < --- web api app

Я попытался запустить проект web-интерфейса .net core из виртуальной папки, но безуспешно. Получение 404 экзаменов

Веб-интерфейс работает, если я размещаю проект веб-API напрямую (привязывая путь к приложению к папке \ Api). Но тогда это приложение должно обслуживать и статические файлы, которые ему не нужны по какой-то причине, даже если я включил:

ConfigureServices

    services.AddSpaStaticFiles(configuration =>
    {
        configuration.RootPath = "App";
    });

...

Конфигурация

    app.UseStaticFiles(new StaticFileOptions()
    {
        OnPrepareResponse = (context) =>
        {
            // Disable caching for all static files.
            context.Context.Response.Headers["Cache-Control"] = Configuration["StaticFiles:Headers:Cache-Control"];
            context.Context.Response.Headers["Pragma"] = Configuration["StaticFiles:Headers:Pragma"];
            context.Context.Response.Headers["Expires"] = Configuration["StaticFiles:Headers:Expires"];
        }
    });

Кто-нибудь знает, где я мог бы найти некоторые инструкции по этому поводу?

1 Ответ

0 голосов
/ 17 сентября 2018

удалось заставить его работать,

На случай, если кто-то придет, вот что сработало для меня:

1.) Настройте пул приложений сайта для работы с ядром .net:

enter image description here

2.) Создайте приложение под сайтом, назвав его app Разверните угловое приложение в эту папку (не забудьте создать угловое приложение с base-href для учета папки) Измените web.config на (посмотрите на headers.remove):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <remove name="aspNetCore" />
      </handlers>
    </system.webServer>
  </location>
</configuration>

3.) Создайте другое приложение на сайте, назвав его backend, например:

Разверните приложение .net core web api в эту папку.

Измените web.config на (важно удалить закомментированный заголовок):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
       <!-- <handlers> -->
         <!-- <remove name="aspnetcore" path="*" verb="*" modules="aspnetcoremodule" resourcetype="unspecified" />  -->
       <!-- </handlers>  -->
      <aspNetCore processPath="dotnet" arguments=".\core.rest.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
    </system.webServer>
</configuration>

Надеюсь, это кому-нибудь поможет

...