2013-07-06 29 views
12

我收到以下错误AZURE:错误部署New Relic的仪表网站以从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. 

在运行部署命令尝试部署从GitHub的Azure的网站时,日志文件。

希望可以引起这种情况的任何指针。

更新:原来这是一个具有以下直接从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.) 

这是工作之前,我不知道为什么它会停止。

+0

你应该标记为答案正确 –

回答

3

在执行代理升级时,这是Azure网站的New Relic .NET代理的已知问题。解决方法是停止网站发布dll,完成部署并重新启动实例。

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

+0

感谢的一个 - 我曾尝试停止网站,但没有成功。最后,我在Azure中创建了一个新的干净网站,现在又重新开始了,看起来我可以重新部署。 – chrisb

+0

即使在您停止网站之后,似乎可能需要一段时间才能发布日志文件。我经历了长达15分钟的延迟。 –

13

建议NewRelic的停止网站卸载文件,并允许部署经历。

作为一种替代方案,您可以在配置选项卡上的应用程序设置中将COR_ENABLE_PROFILING设置为0,以临时禁用配置文件,然后应允许您继续部署,同时使网站始终处于运行状态。

+4

任何人有任何想法如何自动化这?我从BitBucket创建CI,并希望自动更改该环境设置。 – JimmyBoh

+0

可能可以使用PowerShell,我期待到现在COS这很讨厌我太自动化。 – sh1rts

+0

我们设置COR_ENABLE_PROFILING为0,然后得到这个: 错误Web部署任务失败。 (Web部署不能修改文件“Microsoft.CodeAnalysis.CSharp.dll”的目标,因为它是由一个外部进程锁定。 任何想法,这是从正在添加?它安装APM NewRelic的后刚刚起步。我只好再手动停止该网站从Visual Studio部署:-( – GGleGrand

8

不是停止该网站,您可以通过配置选项上manage.windowsazure.com暂时关闭New Relic的监测:

配置>开发商分析>选择 “OFF”>保存

部署

配置>开发商分析>选择“ADD-ON”>选择添加,从下拉菜单>保存

为我工作,无论是从VS常规的部署和VSO自动生成。

0

这些答案都不适用于我了。我有一个Azure基础层网站计划,它承载多个实际网站。

如果我不停止的网站,我得到上述(newrelic.agent.core.dll在使用中)提到的错误...

如果我停止网站(或全部) ,我收到一条错误消息,指出发布端点不可用。

如果我去的配置选项卡,禁用插件,我们仍然可以得到上述(newrelic.agent.core.dll在使用中)提到的错误...

差不多,我们只需重新发布一遍又一遍再次以上述不同的排列,直到如果工作。前几天花了我几个小时,今天花了我10分钟。

0

如果您使用的是webdeploy,那么您可以配置您的webdeploy设置,以便它忽略该文件。但是,如果您这样做,则必须手动将任何更新部署到新的文件代理。

我曾与New Relic的日志文件类似的问题被锁定,并解决它由:

  1. 新遗物的日志文件移动到Web根目录(例如,\ newreliclogs)的子目录
  2. 将2行添加到我的powershell脚本中,该脚本配置skip指令忽略整个目录。例如(其中destBaseOptions是类型Microsoft.Web.Deployment.DeploymentBaseOptions的

    $ skipDirective =新物体Microsoft.Web.Deployment.DeploymentSkipDirective( “NewRelicLog”, “对象名= dirPath,absolutePath =。* \ newreliclogs $”)

    $ destBaseOptions.SkipDirectives.Add($ skipDirective)

取决于你如何使用webdeploy,该配置实现略有不同,我用下面的链接,以帮助我拼凑它:

而且我使用八达通部署库的PowerShell脚本在https://library.octopusdeploy.com/#!/step-template/actiontemplate-web-deploy-publish-website-(msdeploy)

1

不是一个真正的解决方案,但更多的是变通,在发布对话视图的变化的预览,并取消NewRelic.Agent.Core.dll文件,以便它不会被发表。