#api #iis #azure-devops #azure-pipelines
Вопрос:
Я пытаюсь развернуть ASP.NET Основной проект веб-API для локального сервера в моей организации. Все остальные шаги в моем конвейере до сих пор, похоже, идут нормально, за исключением самого развертывания. Поиск в Интернете до сих пор не дал никаких полезных результатов, и я не слишком разбираюсь в трубопроводах.
Ниже приведена последняя версия конвейера выпуска:
trigger: - main pool: name: "BAS API Dev" vmImage: 'windows-latest' variables: solution: '**/*.sln' buildPlatform: 'Any CPU' buildConfiguration: 'Release' steps: - task: UseDotNet@2 displayName: 'Use .NET Core 5' inputs: packageType: 'sdk' version: '5.0.401' - task: DotNetCoreCLI@2 displayName: 'Restore NuGet Packages' inputs: command: 'restore' feedsToUse: 'select' vstsFeed: '5eee984b-3211-4870-a534-d944f936e99f' - task: FileTransform@1 inputs: folderPath: '$(System.DefaultWorkingDirectory)' fileType: 'json' targetFiles: 'appsettings.json' - task: DotNetCoreCLI@2 displayName: 'Build solution' inputs: command: 'build' projects: '**/*.csproj' arguments: '--configuration $(buildConfiguration)' - task: DotNetCoreCLI@2 displayName: 'Run unit tests' inputs: command: 'test' projects: '**/*.UnitTest/*.csproj' testRunTitle: 'Run unit tests.' arguments: '--configuration ${{ variables.buildConfiguration }}' - task: DotNetCoreCLI@2 displayName: 'Publish project' inputs: command: 'publish' publishWebProjects: true - task: IISWebAppManagementOnMachineGroup@0 displayName: 'Configure deployment agent' inputs: enableIIS: false iISDeploymentType: 'iISApplicationPool' actionIISApplicationPool: 'CreateOrUpdateAppPool' # Required when iISDeploymentType == IISApplicationPool# Options: createOrUpdateAppPool, startAppPool, stopAppPool, recycleAppPool websiteName: "BASAPI" websitePhysicalPath: '%SystemDrive%inetpubwwwrootBASAPI' websitePhysicalPathAuth: 'websiteWindowsAuth' # Options: websiteUserPassThrough, websiteWindowsAuth websiteAuthUserName: 'lt;auth-usr-heregt;' websiteAuthUserPassword: $(iis_pass) #addBinding: false # Optional protocol: 'http' # Required when iISDeploymentType == RandomDeployment# Options: https, http hostNameWithOutSNI: 'lt;hostname-heregt;' hostNameWithHttp: 'http://lt;hostname-heregt;' #createOrUpdateAppPoolForWebsite: false # Optional #configureAuthenticationForWebsite: false # Optional appPoolNameForWebsite: 'BASAPI' dotNetVersionForWebsite: 'no Managed Code' # Options: v4.0, v2.0, no Managed Code pipeLineModeForWebsite: 'Integrated' # Options: integrated, classic appPoolIdentityForWebsite: 'ApplicationPoolIdentity' # Options: ApplicationPoolIdentity, LocalService, LocalSystem, NetworkService, SpecificUser #windowsAuthenticationForWebsite: true # Optional parentWebsiteNameForVD: '' Bindings: '' virtualPathForVD: '' physicalPathForVD: '%SystemDrive%inetpubwwwrootBASAPI' vDPhysicalPathAuth: 'vDWindowsAuth' # Optional. Options: vDUserPassThrough, vDWindowsAuth vDAuthUserName: 'lt;auth-usr-heregt;' virtualPathForApplication: 'Root Application' physicalPathForApplication: '%SystemDrive%inetpubwwwrootBASAPI' applicationPhysicalPathAuth: 'applicationWindowsAuth' # Optional. Options: applicationUserPassThrough, applicationWindowsAuth applicationAuthUserName: 'lt;auth-usr-heregt;' ParentWebsiteNameForApplication: createOrUpdateAppPoolForApplication: true # Optional appPoolNameForApplication: 'BASAPI' dotNetVersionForApplication: 'no Managed Code' # Options: v4.0, v2.0, no Managed Code pipeLineModeForApplication: 'Integrated' # Options: integrated, classic appPoolIdentityForApplication: 'applicationPoolIdentity' # Options: applicationPoolIdentity, localService, localSystem, networkService, specificUser appPoolName: 'BASAPI' dotNetVersion: 'no Managed Code' # Options: v4.0, v2.0, no Managed Code pipeLineMode: 'Integrated' # Options: integrated, classic appPoolIdentity: 'ApplicationPoolIdentity' # Options: applicationPoolIdentity, localService, localSystem, networkService, specificUser - task: IISWebAppDeploymentOnMachineGroup@0 displayName: 'Deploy to server' inputs: webSiteName: "BASAPI" virtualApplication: "Root Application" #package: '$(System.DefaultWorkingDirectory)***.zip' #setParametersFile: # Optional #removeAdditionalFilesFlag: false # Optional #excludeFilesFromAppDataFlag: false # Optional #takeAppOfflineFlag: false # Optional #additionalArguments: # Optional #xmlTransformation: # Optional #xmlVariableSubstitution: # Optional #jSONFiles: # Optional
Задача метания — это IISWebAppDeploymentOnMachineGroup@0
весь путь снизу. Чуть выше сообщения, отображающего код выхода, ниже отображается необработанное исключение:
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Web.Deployment.Tracing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. at Microsoft.Web.Deployment.TraceWrapper.EventWriteVerboseHelper(String message, String user, String siteName) at Microsoft.Web.Deployment.TraceWrapper.EventWriteVerbose(String message, String user, String siteName) at MSDeploy.MSDeploy.Main(String[] unusedArgs)
Возможно, это очевидная ошибка, но я не могу увидеть или найти, где я должен добавить эту зависимость. Поиск его в диспетчере NuGet не дает никаких результатов или вообще не дает результатов в этом пространстве имен.
Я установил агент на локальном сервере, на котором запущен экземпляр IIS, который подключен к среде Azure с помощью пулов агентов и личного маркера доступа.
Что я делаю не так и/или где все идет не так? Я сталкиваюсь с этим уже пару недель и не продвинулся дальше.
Если что-то нуждается в дальнейших разъяснениях или дополнительном коде, пожалуйста, спрашивайте!
Заранее спасибо.