12

我收到以下错误:

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.)

这以前有效,我不确定它为什么会停止。

4

6 回答 6

13

NewRelic 建议停止网站以卸载文件并允许部署通过。

作为替代方案,您可以在配置选项卡上的应用程序设置中将 COR_ENABLE_PROFILING 设置为 0,以暂时禁用分析,这样您就可以继续部署,同时让网站始终保持正常运行。

于 2013-09-05T13:40:07.933 回答
8

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

配置 > 开发人员分析 > 选择“关闭”> 保存

部署

配置 > 开发者分析 > 选择“附加组件” > 从下拉列表中选择附加组件 > 保存

为我工作,无论是从 VS 定期部署还是从 VSO 自动构建。

于 2014-05-15T08:04:01.300 回答
3

这是执行代理升级时适用于 Azure 网站的 New Relic .NET 代理的一个已知问题。解决方法是停止网站释放dll,完成部署,然后重新启动实例。

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

于 2013-07-09T21:17:42.430 回答
1

不是真正的解决方案,而是更多的解决方法,在发布对话框中查看更改的预览并取消选中 NewRelic.Agent.Core.dll 文件,使其不会被发布。

于 2015-07-24T06:09:46.607 回答
0

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

我在新的遗物日志文件被锁定时遇到了类似的问题,并通过以下方式解决了它:

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

    $skipDirective = 新对象 Microsoft.Web.Deployment.DeploymentSkipDirective("NewRelicLog","objectName=dirPath,absolutePath=.*\newreliclogs$")

    $destBaseOptions.SkipDirectives.Add($skipDirective)

根据您使用 webdeploy 的方式,实现的配置略有不同,我使用以下链接帮助我将其拼凑在一起:

我使用了来自https://library.octopusdeploy.com/#!/step-template/actiontemplate-web-deploy-publish-website-(msdeploy)的 Octopus Deploy Library 的 powershell 脚本。

于 2015-02-20T21:09:53.550 回答
0

这些答案都不适合我了。我有一个 Azure 基本层网站计划,其中托管多个实际网站。

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

如果我确实停止了网站(或所有网站),我会收到一条错误消息,指出发布端点不可用。

如果我转到配置选项卡并禁用 AddOn,我们仍然会收到上述错误(正在使用 newrelic.agent.core.dll)...

几乎我们只是用上述的不同排列一遍又一遍地重新发布,直到有效为止。前几天花了我几个小时,今天花了我10分钟。

于 2014-08-04T18:49:34.840 回答