我有几个MVC4应用程序,当通过Web Deploy发布时,他们并不总是写两个文件bin\App_global.asax.compiled
和bin\App_global.asax.dll
。如果我多次发布,它最终会发布此文件。
没有文件,路由表就没有构建,尝试访问任何控制器功能时出现403.14
错误。
我在VS2012 Ultimate Update 4和VS2013 Ultimate Update 1中都有这个问题。
如果我运行发布预览,它通常会告诉我它将删除这两个文件,如果我刷新预览,它将从删除这两个文件更改为更新。
答案 0 :(得分:2)
我在预编译MVC项目时遇到了丢失App_global.asax.compiled和App_global.asax.dll的问题。
首先我认为它与TeamCity有关,因为它只会在TeamCity下构建时失败,而不是在本地(从Visual Studio)或使用msbuild.exe从构建服务器上的命令提示符构建。
原来是为TeamCity写入的磁盘启用了磁盘压缩功能。在http://ydie22.blogspot.ch/2008/11/aspnetcompiler-and-missing-compiled.html找到了Erik Ropez评论中解决方案的指针。在此处作为参考发布...因此,如果选中“压缩此驱动器以节省磁盘空间”,则在“硬盘驱动器/目录的属性”下,尝试将其关闭。
答案 1 :(得分:0)
Similar issue I just solved myself.
的StackOverflow,
只是想让每个人都知道我的问题已经解决了。
这是病毒扫描程序扫描新创建的临时目录以进行预编译并实际锁定相关文件的问题。
因此,如果有人遇到此类问题并且正在运行任何防病毒软件(尤其是企业级):
TLDR:
- 检查您的防病毒软件是否锁定文件。
- 关闭所有compsec扫描实用程序并逐个打开以隔离导致问题的内容。
-Burt Beezy