Как исправить неправильно настроенный файл web.config, созданный шаблоном проекта Visual Studio по умолчанию - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь настроить CI и у меня возникают проблемы с созданным файлом web.config после моего развертывания.

Мой главный вопрос - что мне нужно сделать, чтобы мой проект в Visual Studio или мой сервер исправили эту проблему web.config.

Шаги, которые я сделал.

  1. Я создал ASP. NET Базовый проект веб-приложения в Visual studio. (Он запускается при отладке с использованием IIS Express)
  2. Я подключил его к репо в Azure DevOps.
  3. Использовал пул агентов по умолчанию для создания веб-артефакта
  4. Настройте локального агента на сервере, на котором будет размещаться сайт.
  5. Пробежал по трубопроводу и прошел.
  6. Проверенный сайт развернут.
  7. Попробовал запустить сайт и получил 500.19 Error

В Visual Studio я могу использовать IIS Express для запуска localhost сайта и все работает.

На моем хост-компьютере написано, что web.config плохо настроен.

HTTP Error 500.19 - Internal Server Error

The requested page cannot be accessed because the related configuration data for the page is invalid.

Detailed Error Information:

Module
   IIS Web Core 

Notification
   Unknown 

Handler
   Not yet determined 

Error Code
   0x8007000d 

Config Error

Config File
   \\?\D:\Websites\[My Site Name]\web.config 

Requested URL
   http://[Some IP]:80/ 

Physical Path

Logon Method
   Not yet determined 

Logon User
   Not yet determined 

Сгенерированный 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=".\Web Content.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: [A Guid]-->

Использование 'https://elmah.io/tools/configvalidator/' говорит мне, что (8,125) The 'hostingModel' attribute is invalid - The value 'inprocess' is invalid according to its datatype 'String' - The Enumeration constraint failed.

Предыдущий версия сайта работала (до подключения к ней моего КИ). Это был простой сайт с только страницей указателя, в нем был следующий файл web.config.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <defaultDocument>
            <files>
                <clear />
                <add value="index.html" />
                <add value="Default.asp" />
                <add value="iisstart.htm" />
            </files>
        </defaultDocument>
    </system.webServer>
</configuration>

Мой главный вопрос: что мне нужно сделать, чтобы исправить мой проект в Visual Studio или мой сервер? эта проблема web.config.

Сборка - YAML

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'ResearchWebsite'
    publishLocation: 'Container'

Развертывание - YAML

trigger:
- master

pool: Default

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:



- task: DownloadPipelineArtifact@2
  inputs:
    buildType: 'specific'
    project: '[Some GUID]'
    definition: '8'
    buildVersionToDownload: 'latest'
    artifactName: 'ResearchWebsite'
    targetPath: '$(System.ArtifactsDirectory)'



- task: IISWebAppDeploymentOnMachineGroup@0
  inputs:
    WebSiteName: '[Site Name]'
    Package: '$(System.ArtifactsDirectory)\**\*.zip'

1 Ответ

0 голосов
/ 20 января 2020

Мне пришлось установить . NET Core 3.1 на моем хост-сервере.

...