App_Global.asax.compiled和App_Global.asax.dll丢失了吗? WebApi .NET 4.5项目

在我们使用WebAPI构建“简单”API的冒险过程中,我们已经像任何项目一样拥有了相当多的问题,但是我无法找到任何可以解释以下行为的资源:

细节 :

  • Visual Studio 2013 with Update 2(但是,在更新之前,这是相同的)
  • Windows Server 2008 R2
  • Web API 5.1.2
  • 该问题似乎与“发布”命令有关,特别是“预编译”选项。

      通过IIS Express运行时,我们看不到任何问题。

    如果我们发布一次,则无法在bin目录中包含App_Global.asax.compiled和App_Global.asax.dll。 如果它正在更新应用程序的现有实例,它实际上将删除现有的两个文件。

    注意:无论WebPublish或FileSystem Publish如何,都会发生这种情况

      加载到IIS时,此行为导致404.0错误,而不是我们预期的201。

    但是,如果我第二次发布没有更改以前的配置文件/配置,它会添加两个。

      有一段时间,我们认为这是权限问题,并没有看到一致的行为。 这种情况发生在具有相同行为的所有开发机器上。
      我们已经看到有关神秘行为的post,但从我们的分析来看,这是问题的根源。

    只是想让每个人都知道我的问题已经解决了。

    这是病毒扫描程序扫描新创建的临时目录以进行预编译并实际锁定相关文件的问题。

    因此,如果有人遇到此类问题并且正在运行任何防病毒软件(尤其是企业级):

    TLDR:

    • 检查您的防病毒软件是否锁定了文件。
    • 关闭所有compsec扫描实用程序并逐个打开以隔离导致问题的原因。