Asp.net mvc MVC应用程序在Web部署后失败,出现404错误

Asp.net mvc MVC应用程序在Web部署后失败,出现404错误,asp.net-mvc,msbuild,web-deployment,antivirus,Asp.net Mvc,Msbuild,Web Deployment,Antivirus,有时,当我发布ASP.NET MVC应用程序并将文件复制到生产服务器时,会收到404个错误。当我检查新发布的站点和旧站点之间的差异时,我发现许多文件丢失,包括App_global.asax.dll和App_global.asax.compiled Visual Studio 2015和以前的版本都会出现这种情况。以前的出版物是成功的,但这似乎是断断续续的。在构建过程中不会产生任何错误。通过MSBuild发布和通过VisualStudio发布似乎都有相同的问题。总有一天,这个系统会建立得很好。有时

有时,当我发布ASP.NET MVC应用程序并将文件复制到生产服务器时,会收到404个错误。当我检查新发布的站点和旧站点之间的差异时,我发现许多文件丢失,包括App_global.asax.dll和App_global.asax.compiled

Visual Studio 2015和以前的版本都会出现这种情况。以前的出版物是成功的,但这似乎是断断续续的。在构建过程中不会产生任何错误。通过MSBuild发布和通过VisualStudio发布似乎都有相同的问题。总有一天,这个系统会建立得很好。有时候不会。当我在发布之前删除包目录的内容时,这种情况似乎最常见

一个简单的示例MSBuild命令。这是一个非常简单的单站点.csproj文件

MSBuild.exe \MyProject.csproj /p:DeployOnBuild=true;PublishProfile=Prod
发布文件:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <LaunchSiteAfterPublish>False</LaunchSiteAfterPublish>
    <ExcludeApp_Data>True</ExcludeApp_Data>
    <publishUrl>C:\packages\MyProject</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
    <PrecompileBeforePublish>True</PrecompileBeforePublish>
    <EnableUpdateable>False</EnableUpdateable>
    <DebugSymbols>False</DebugSymbols>
    <WDPMergeOption>DonotMerge</WDPMergeOption>
  </PropertyGroup>
</Project>

文件系统
释放
任何CPU
错误的
符合事实的
C:\packages\MyProject
符合事实的
符合事实的
错误的
错误的
不要合并

我在这个问题上浪费了太多时间,我不得不与大家分享

这是由于McAfee On Access病毒扫描程序干扰了我的发布过程造成的。禁用该服务(事实证明,我的公司允许我暂时执行此操作)完全解决了此问题

我认为,当您将
DeleteExistingFiles
设置为
false
时,此问题最不可能再次出现,因为AV扫描仪以前已经看到过这些文件。那只是一个理论

注意这种行为