Ошибка при развертывании инструментированного сайта New Relic в Azure из Github и VS.NET

Я получаю следующую ошибку:

Error: The process cannot access the file 'C:\DWASFiles\Sites\mywebsitename\VirtualDirectory0\site\wwwroot\newrelic\NewRelic.Agent.Core.dll' because it is being used by another process.

В файле журнала Выполнение команды развертывания... при попытке развернуть веб-сайт Azure из Github.

Был бы признателен за любые указания относительно того, что может быть причиной этого.

ОБНОВЛЕНИЕ. Оказывается, это также не работает при публикации непосредственно из VS.NET со следующим:

1>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4196,5): Warning : An error was encountered when processing operation 'Create File' on 'NewRelic.Agent.Core.dll'.  
1>Retrying operation 'Update' on object filePath (mywebsitename\newrelic\NewRelic.Agent.Core.dll). Attempt 1 of 2.
1>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4196,5): Error : Web deployment task failed. ((06/07/2013 23:54:58) An error occurred when the request was processed on the remote computer.)

Это работало раньше, и я не уверен, почему это остановилось.


person chrisb    schedule 06.07.2013    source источник
comment
вы должны отметить один из ответов как правильный   -  person Marius Stănescu    schedule 29.03.2014


Ответы (6)


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

В качестве альтернативы вы можете установить для COR_ENABLE_PROFILING значение 0 в настройках вашего приложения на вкладке конфигурации, чтобы временно отключить профилирование, что позволит вам продолжить развертывание, оставив веб-сайт в рабочем состоянии.

person Graham Wager    schedule 05.09.2013
comment
Кто-нибудь знает, как это автоматизировать? У меня есть сборки CI из BitBucket, и я хотел бы автоматизировать изменение этой настройки среды. - person Jim Buck; 11.08.2014
comment
Возможно, это можно автоматизировать с помощью Powershell, который я сейчас изучаю, потому что это меня тоже раздражает. - person sh1rts; 14.10.2015
comment
Мы установили для COR_ENABLE_PROFILING значение 0, а затем получили следующее: Ошибка: сбой задачи веб-развертывания. (Веб-развертывание не может изменить файл «Microsoft.CodeAnalysis.CSharp.dll» в месте назначения, потому что он заблокирован внешним процессом. Есть идеи, откуда это берется? Это началось только после установки NewRelic APM. Затем мне пришлось вручную остановить развертывание сайта из Visual Studio :-( - person GGleGrand; 12.12.2015
comment
Мне также пришлось переключить параметр «Всегда включено» в веб-приложении на «Выкл», чтобы избавиться от ошибки. - person JohannesRu; 17.02.2017

Вместо того, чтобы останавливать веб-сайт, вы можете временно отключить мониторинг New Relic через вкладку «Настройка» на manage.windowsazure.com:

Настроить > аналитика разработчика > выбрать «ВЫКЛ.» > Сохранить

Развертывать

Настроить > Аналитика разработчика > выбрать «ДОПОЛНЕНИЕ» > Выбрать надстройку из раскрывающегося списка > Сохранить

У меня работало как при обычном развертывании из VS, так и при автоматической сборке из VSO.

person Frank van Eykelen    schedule 15.05.2014

Это известная проблема с агентом New Relic .NET для веб-сайтов Azure при обновлении агента. Обходной путь — остановить веб-сайт для выпуска библиотеки DLL, завершить развертывание и перезапустить экземпляр.

https://newrelic.com/docs/dotnet/azure-web-sites#h2-1

person Wyatt Lindsey    schedule 09.07.2013
comment
Спасибо - я пытался остановить сайт, но безуспешно. В конце концов, я создал новый чистый веб-сайт в Azure и начал снова, теперь, похоже, я могу повторно развернуть его. - person chrisb; 10.07.2013
comment
Кажется, что может пройти некоторое время, прежде чем файл журнала будет выпущен, даже после того, как вы остановите веб-сайт. Бывают задержки до 15 минут. - person Hannes Sachsenhofer; 12.02.2014

На самом деле это не решение, а скорее обходной путь: в диалоговом окне публикации просмотрите предварительный просмотр изменений и снимите флажок с файла NewRelic.Agent.Core.dll, чтобы он не был опубликован.

person KJN    schedule 24.07.2015

Ни один из этих ответов больше не работает для меня. У меня есть план веб-сайта базового уровня Azure, на котором размещено несколько реальных веб-сайтов.

Если я не остановлю веб-сайт, я получаю упомянутую выше ошибку (используется newrelic.agent.core.dll)...

Если я остановлю веб-сайт (или все из них), я получу сообщение об ошибке, говорящее о том, что конечная точка публикации недоступна.

Если я перейду на вкладку конфигурации и отключу надстройку, мы все равно получим упомянутую выше ошибку (используется newrelic.agent.core.dll)...

В значительной степени мы просто переиздаем снова и снова с различными перестановками вышеперечисленного, пока это не сработает. На днях это заняло у меня несколько часов, сегодня у меня ушло 10 минут.

person pseabury    schedule 04.08.2014

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

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

  1. Перемещение файла журнала новой реликвии в подкаталог корневого веб-сайта (например, \newreliclogs)
  2. Добавление 2 строк в мой сценарий powershell, который настроил директиву skip для игнорирования всего этого каталога. например (где destBaseOptions имеет тип Microsoft.Web.Deployment.DeploymentBaseOptions

    $skipDirective = новый объект Microsoft.Web.Deployment.DeploymentSkipDirective("NewRelicLog","objectName=dirPath,absolutePath=.*\newreliclogs$")

    $destBaseOptions.SkipDirectives.Add($skipDirective)

В зависимости от того, как вы используете webdeploy, конфигурация достигается немного по-разному, я использовал следующие ссылки, чтобы помочь мне собрать ее воедино:

И я использовал сценарий powershell из библиотеки Octopus Deploy по адресу https://library.octopusdeploy.com/#!/step-template/actiontemplate-web-deploy-publish-website-(msdeploy).

person Sean    schedule 20.02.2015