как установить "stdout = true" при выполнении веб-развертывания для приложения asp. net core v3.1? - PullRequest
3 голосов
/ 20 июня 2020

Я публикую приложение asp. net core v3.1 в Visual Studio 2019
, поскольку основные приложения не создают web.config
webdeploy создает его и публикует свой собственный файл web.config на каждый publi sh

в то время как он делает это
он устанавливает stdout=false, и я хотел бы быть правдой -
кто-нибудь знает, как это контролировать?
я был возиться с попыткой настроить что-то в .csproj
, но так и не нашел правильную комбинацию

вот как выглядит опубликованный файл web.config:

<aspNetCore processPath="dotnet" arguments=".\myproj.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />

и, конечно, вот как я хочу, чтобы он выглядел:

<aspNetCore processPath="dotnet" arguments=".\myproj.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />

еще одно сообщение об этой же проблеме здесь:
https://github.com/MicrosoftDocs/azure-docs/issues/31380

1 Ответ

1 голос
/ 22 июня 2020

Вы можете добавить web.config в свой проект, щелкнув проект правой кнопкой мыши, добавив => newItem => Web => Web Configuration File. А затем вы можете установить в нем stdoutLogEnabled.

Пример (оплата внимание нужно добавить hostingModel="inprocess" в web.config):

<system.webServer>
    <handlers>
      <remove name="aspNetCore"/>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="InProcess"/>
  </system.webServer>

А вот опубликованный web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\case1(5-26).dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>
...