Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 由于文件锁定(msvcr100.dll),到Azure Web App(应用程序服务)的TFS CI生成失败_C#_Azure_Visual Studio 2013_Tfs - Fatal编程技术网

C# 由于文件锁定(msvcr100.dll),到Azure Web App(应用程序服务)的TFS CI生成失败

C# 由于文件锁定(msvcr100.dll),到Azure Web App(应用程序服务)的TFS CI生成失败,c#,azure,visual-studio-2013,tfs,C#,Azure,Visual Studio 2013,Tfs,问题 尝试从TFS CI发布到Azure Web应用时出现部署错误。文件被锁定,这将阻止生成更新 症状 手动发布(从VisualStudio中进行Web部署发布)通常会成功 停止Web应用程序并发布可以使其成功,但是如果我们每次都需要停止并启动Web应用程序,那么这就违背了CI的要点 CI发布到Web角色和工作人员角色似乎没有此问题,我们仅在发布到Web应用程序(以前是网站,当前的Azure门户术语现在是应用程序服务)时才发现此问题 只有通过TFS从CI生成发布才会以这种方式持续失败 错误

问题

尝试从TFS CI发布到Azure Web应用时出现部署错误。文件被锁定,这将阻止生成更新

症状

  • 手动发布(从VisualStudio中进行Web部署发布)通常会成功
  • 停止Web应用程序并发布可以使其成功,但是如果我们每次都需要停止并启动Web应用程序,那么这就违背了CI的要点
  • CI发布到Web角色和工作人员角色似乎没有此问题,我们仅在发布到Web应用程序(以前是网站,当前的Azure门户术语现在是应用程序服务)时才发现此问题
  • 只有通过TFS从CI生成发布才会以这种方式持续失败
错误

Web部署任务失败。(Web部署无法修改该文件 目标上的“msvcr100.dll”,因为它已被外部 为使发布操作成功,您可以 需要重新启动应用程序以释放锁,或者使用 下一次发布时.Net应用程序的AppOffline规则处理程序 尝试。了解更多信息,请访问: )

链接上的信息没有多大帮助

错误\u正在使用文件\u 诊断–无法覆盖或删除目标文件,因为它当前正在使用。 分辨率–执行同步之前,请确保目标文件未被使用。如果您正在将内容同步到网站 托管在IIS 7或更高版本上(使用appHostConfig、iisApp或 内容路径提供程序),请考虑在脱机期间应用程序。 通过启用appOffline规则进行同步

尝试的解决方案

  • 我们使用的是New Relic-从那以后我们已经移除了New Relic,这个问题仍然存在。该二进制文件似乎是一个Microsoft库,但不清楚它与应用程序的关系(未被引用)
  • 其他一些SO问题解决了与发布类似的问题,但这些问题都与从TFS CI获取此问题无关。
  • 上述问题中的一个答案建议在发布配置文件中使用EnablesDeployAppOffline配置,添加此配置可以从VS中手动执行发布,但无法解决从TFS/CI自动发布时的问题
编辑

处理使用EnablesDeployAppOffline配置使应用程序脱机的问题-不幸的是,只有通过Visual Studio(非CI)执行WebDeploy时,才支持此配置。

您可以使用in-CI部署web应用程序

在WebDeployV3中,我们添加了自动获取ASP.Net的支持 发布到应用程序之前,应用程序处于脱机状态。如果用户 希望确保他们的应用程序不锁定文件 (例如,SQL CE sdf文件只允许一次连接到该文件) a时间)被覆盖,或者如果他们想确保访问者 他们的网站不会影响发布过程。发布过程何时开始 完成后,将删除App_Offline.htm文件并删除网站 将再次联机

或者,您可以添加类似以下的PowerShell脚本,将web应用部署到Azure:

    param($websiteName, $packOutput)

    $website = Get-AzureWebsite -Name $websiteName

    # get the scm url to use with MSDeploy.  By default this will be the second in the array
    $msdeployurl = $website.EnabledHostNames[1]


    $publishProperties = @{'WebPublishMethod'='MSDeploy';
                            'MSDeployServiceUrl'=$msdeployurl;
                            'DeployIisAppPath'=$website.Name;
                            'Username'=$website.PublishingUsername;
                            'Password'=$website.PublishingPassword}

    Write-Output "Stopping web app..."
Stop-AzureWebsite -Name $websiteName

Write-Output "Publishing web app..."
$publishScript = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Scripts\default-publish.ps1"

. $publishScript -publishProperties $publishProperties  -packOutput $packOutput

Write-Output "Starting web app..."
Start-AzureWebsite -Name $websiteName
引用自:

新的“Deploy AzureRM Web App”任务具有使应用程序脱机的选项,这将防止此错误

有关复选框,请参见屏幕截图


我已在发布配置文件中设置了True,但从TFS CI发布时仍会发生错误@ดาว 您使用的是MSDeploy还是MSBuild?我如何使用VSO tfs build进行设置?您找到解决方案了吗?没有找到解决方案,目前我们直接从VS发布此项目。谢天谢地,此网站超出了我们的主要产品构建周期,但这意味着我们根本无法使用CI流程。阻止我们将我们的主要产品从云服务移动到应用服务。这太糟糕了,我试图使用VSTS设置CI,但我遇到了这个错误,手动重新启动应用程序毫无意义,因为CI goescheck使用powershell脚本为我和在线构建系统修复了这个问题。不太清楚它叫什么,vNext,VSO?