2015-11-11 10 views
35

Я публикую проект ASP.NET 5 MVC6 из Visual Studio 2015. Я импортировал профиль публикации с моего сервера. Соединение успешно подтверждает, однако, когда я публикую свой проект у меня есть следующее сообщение об ошибке:Публикация из Visual Studio 2015 - разрешить ненадежные сертификаты

ERROR_CERTIFICATE_VALIDATION_FAILED

Connected to the remote computer ("XXXXXXXXX") using the specified process ("Web Management Service"), but could not verify the server's certificate. If you trust the server, connect again and allow untrusted certificates.

Там нет возможности разрешить ненадежные сертификаты в параметрах публикации.

+0

Я написал сообщение для того же исключения, посмотрите здесь: https://neelbhatt40.wordpress.com/2017/07/03/visual-studio-2015-exception-connected-to-the-but- can-not-verify-the-servers-certificate-if-you-trust-the-server-connect-again-and-allow-untrusted-certificates/ – Neel

ответ

64

Опция, позволяющая не доверять сертификатам, пока не поддерживается в текущей оснастке. Надеюсь, это скоро будет обновлено. Однако вы можете установить его вручную.

  1. Открыть опубликовать файл профиля (.pubxml) внутри/Свойства/PublishProfiles в текстовом редакторе
  2. Внутри <PropertyGroup> элемента, установите AllowUntrustedCertificate в True (<AllowUntrustedCertificate>True</AllowUntrustedCertificate>) или добавить его, если он не существует
  3. Установите UsePowerShell в False (<UsePowerShell>False</UsePowerShell>).

В это время написания, сгенерированный скрипт PowerShell пренебрегает AllowUntrustedCertificate свойство, которое, вероятно, ошибка, следовательно, необходимость установить его False.

Вы можете получить powershell для работы, если вы update the module version в файле .ps1.

В качестве побочного примечания вы также можете обойти эту проблему, «доверяя» сертификату сервера локально.

+0

Спасибо, сэр. Он решил мою оригинальную проблему, но теперь у меня есть еще одна ошибка: ERROR_USER_UNAUTHORIZED. «Не удалось выполнить задачу развертывания сети (подключен к удаленному компьютеру (XXXX) с помощью службы веб-управления, но не может разрешить». Учетные данные верны, я считаю, что это проблема разрешения. Можете ли вы дать мне некоторое представление о том, как решить проблему новая ошибка? – koryakinp

+0

Является ли пользователь администратором сервера? – Dealdiane

+0

Да. Пользователь является администратором сервера. – koryakinp

22

Для точки чистого ядра 1.0 вы должны добавить тег

<AllowUntrustedCertificate>True</AllowUntrustedCertificate> 

к publishprofiles в файле .pubxml

1

Update

Просто немного наблюдения, при развертывании .net основного приложения на VS2015 или VS2017, на удаленный сервер IIS, пожалуйста, используйте это

<UsePowerShell>True</UsePowerShell> 

не

<UsePowerShell>False</UsePowerShell> 

Обнаруженный, что развертывание заканчивал успешным, но никакие файлы не были скопированы на сервер, пока я не изменил тег в истинной.

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

+1

Кажется, есть противоречие здесь Вы говорите сначала, чтобы установить флаг в true, но затем скажите, что ничего не скопировано, если флаг не является ложным. Можете ли вы уточнить? – paqogomez

+0

спасибо за наблюдение @paqogomez. Используйте True. Последнее заявление в моем комментарии было опечаткой. Еще раз спасибо –

7

Для меня решение взяло 4 строки в файле публикации xml.

<AllowUntrustedCertificate>True</AllowUntrustedCertificate> 
<UseMsDeployExe>true</UseMsDeployExe> 
<UserName>myuser</UserName> 
<Password>mypass</Password> 

UseMsDeployExe изменяет ошибку игнорировать сертификат, но не прошел проверку подлинности пользователя, следовательно, необходимость для пользователя и передать (машины вы устанавливаете в)

Никакие изменения не были нужны сценарий powershell.

+1

Это версия, которая работала для меня после тысяч поисков и попыток. – Alina

+0

Это также работало для меня на ASP.Net Core 1.1.2 – Francis

+1

В VS 2017.2 это единственное, что работает для меня. – Dylan

3

У меня был <UsePowerShell>True</UsePowerShell>, но он все еще терпел неудачу с ошибкой сертификата.

  • я вновь вошел в свой пароль в диалоге настроек и он все еще не удалось
  • После того, как я нажал на Validate Connection он начал работать.

Publish Settings Dialog

Примечание

  • VS 2017 (15,2)
  • Мой пароль недавно изменил
  • В качестве теста, ввели пароль неправильно и я получил сертификат ошибка, так что ошибка сертификата не только о ненадежном сертификате, а, видимо,
+2

Просто пришел сюда, чтобы опубликовать одно и то же решение. Откройте диалоговое окно настроек публикации, повторите проверку соединения, нажав «Подтвердить подключение», повторно сохраните профиль и снова щелкните по развертыванию - это заставляет меня проходить проверку каждый раз, но я должен делать это каждый раз, когда я перезапускаю VS - Вероятно, ошибка. –

+0

это, безусловно, похоже на ошибку! спасибо за примечание @LeviFuller – spottedmahn

+1

Блестящий! Это работает и для меня. Да, похоже, это ошибка: https://developercommunity.visualstudio.com/content/problem/64779/web-deploy-could-not-verify-servers-certificate.html – pcdev

0

Еще одно решение

Я создал параметры публикации на удаленном IIS и импортировать их в Visual Studio 2017 (15.2). После этого я изменил URL-адрес, чтобы указать имя файла, так как пользователь IIS имеет доступ только к определенному сайту (спасибо this ответ на SO). Я ввел учетные данные с помощью пользовательского интерфейса, и нет необходимости хранить пароль в профиле.

Мой профиль выглядит следующим образом:

<WebPublishMethod>MSDeploy</WebPublishMethod> 
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> 
<LastUsedPlatform>Any CPU</LastUsedPlatform> 
<SiteUrlToLaunchAfterPublish>https://some.site.com:443/</SiteUrlToLaunchAfterPublish> 
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish> 
<ExcludeApp_Data>False</ExcludeApp_Data> 
<PublishFramework>netcoreapp1.1</PublishFramework> 
<ProjectGuid>eecf975e-f2e6-440f-bfd6-a0a63c25e3c3</ProjectGuid> 
<MSDeployServiceURL>https://url.toourserver.com:8172/msdeploy.axd?site=some.site.com</MSDeployServiceURL> 
<DeployIisAppPath>some.site.com</DeployIisAppPath> 
<RemoteSitePhysicalPath /> 
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer> 
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod> 
<EnableMSDeployBackup>True</EnableMSDeployBackup> 
<UserName>IISUserName</UserName>  
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>  
<_SavePWD>True</_SavePWD> 

<AllowUntrustedCertificate> был нужен как само сертификат не является доверенным на моей машине.

При этом профиль резервного копирования производится в соответствии с настройками в IIS, сайт обновляется и открыт в браузере, когда процесс будет завершен :-)

Хотя все другие ответы здесь также его работу, Я подумал, что было бы неплохо разделить этот путь, поскольку он включает в себя только несколько изменений (AllowUntrustedCertificate) и отсутствие хранения простых паролей.

Смежные вопросы