публикация в dotnet за прокси 407

#.net #.net-core #msbuild #msdeploy

#.net #.net-ядро #msbuild #msdeploy

Вопрос:

Я пытаюсь настроить свой сервер сборки gitlab для развертывания ASP.NET Основной проект с использованием msdeploy. Теперь проблема в том, что мое развертывание блокируется прокси-сервером…

Как мне настроить прокси в dotnet publish команде?

 MSDEPLOY : error Code: ERROR_COULD_NOT_CONNECT_TO_REMOTESVC
Error : The remote server returned an error : (407) Proxy Authentication Required. 
MSDEPLOY : error count: 1. 
  

Это команда, которая у меня есть в настоящее время:

 dotnet publish [project.csproj] -c Release /p:PublishProfile="[Location of publish profile]" /p:Password="[Password]"
  

Пример профиля публикации

 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <PublishProvider>AzureWebSite</PublishProvider>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish>[Url]</SiteUrlToLaunchAfterPublish>
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <ProjectGuid>[Guid]</ProjectGuid>
    <MSDeployServiceURL>[URL]</MSDeployServiceURL>
    <DeployIisAppPath>DeployProd</DeployIisAppPath>
    <RemoteSitePhysicalPath />
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
    <EnableMSDeployBackup>True</EnableMSDeployBackup>
    <UserName>[Username]</UserName>
    <_SavePWD>True</_SavePWD>
    <_DestinationType>AzureWebSite</_DestinationType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <SelfContained>false</SelfContained>
  </PropertyGroup>
</Project>
  

Ответ №1:

Вам необходимо указать переменную среды:

 http_proxy = http://user:pass@proxy:port/
https_proxy = http://user:pass@proxy:port/
  

И если ваша gitlab не находится за прокси, вам нужно ее исключить:

 no_proxy=servername,servername2
  

Затем вам нужно сообщить msdeploy, чтобы использовать эту информацию о прокси. Посмотрите, какой msdeploy.exe используется бегуном gitlab и измените его файл .config. Добавьте следующее между тегами конфигурации:

   <system.net>
    <defaultProxy useDefaultCredentials="true" enabled="true"/>
  </system.net>