项目:
在构建项目时,今天它神秘地开始错误地输出标题中的错误。现在,它不是失败的构建,而是发布:
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========
现在,我已经进入了临时构建文件夹,
[path to project]\obj\Release\AspnetCompileMerge\Source
它似乎拥有推送到沙箱所需的所有文件,但是当我这样做时尝试通过大量消息(50多行)到达网站时出错。一旦我将它们格式化,它就会附加。
建议?
注意:其他项目仍然可以正常编译。这仅限于此项目。
注2:我在命令行中看到了几个使用aspnet_compiler.exe
-errorstack
标志的请求,但我还没弄明白{{1} }和-v
标志意味着,所以我目前无法提供输出。我之前从未使用过命令行进行开发,所以详情请参阅。
更新1:我实际上已经找到了命令,这就是我得到的:
-p
特别注意:
D:\[path to project]>aspnet_compiler.exe -errorstack -v /[project] -p D:\[path to project]\
Microsoft (R) ASP.NET Compilation Tool version 4.0.30319.33440
Utility to precompile an ASP.NET application
Copyright (C) Microsoft Corporation. All rights reserved.
D:\[path to project]\web.config(43): error ASPCONFIG: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.
[ConfigurationErrorsException]: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS. (D:\[path to project]\web.config line 43)
at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
at System.Web.Configuration.RuntimeConfig.GetSectionObject(String sectionName)
at System.Web.Configuration.RuntimeConfig.GetSection(String sectionName, Type type, ResultsIndex index)
at System.Web.Configuration.RuntimeConfig.get_Compilation()
at MTConfigUtil.GetCompilationConfig(String vpath)
at System.Web.Compilation.BuildManager.IsBatchEnabledForDirectory(VirtualPath virtualDir)
at System.Web.Compilation.BuildManager.PrecompileWebDirectoriesRecursive(VirtualDirectory vdir, Boolean topLevel)
at System.Web.Compilation.BuildManager.PrecompileWebDirectoriesRecursive(VirtualDirectory vdir, Boolean topLevel)
at System.Web.Compilation.BuildManager.PrecompileWebDirectoriesRecursive(VirtualDirectory vdir, Boolean topLevel)
at System.Web.Compilation.BuildManager.PrecompileAppInternal(VirtualPath startingVirtualDir, IEnumerable`1 excludedVirtualPaths)
at System.Web.Compilation.BuildManager.PrecompileApp(VirtualPath startingVirtualDir, IEnumerable`1 excludedVirtualPaths)
at System.Web.Compilation.BuildManager.PrecompileApp(ClientBuildManagerCallback callback, IEnumerable`1 excludedVirtualPaths)
at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCallback callback, List`1 excludedVirtualPaths)
at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCallback callback, List`1 excludedVirtualPaths)
at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuildManagerCallback callback, Boolean forceCleanBuild)
at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuildManagerCallback callback)
at System.Web.Compilation.Precompiler.Main(String[] args)
问题是,我在该行的Web.Config中唯一的东西是
This error can be caused by a virtual directory not being configured as an application in IIS. (D:\[path to project]\web.config line 43)
你知道,因为每次我停止调试时,VS 2015中内置的IIS都会崩溃,我在Windows上设置了IIS,只是指向我的项目目录。但它到目前为止一直很好。这可能是问题吗?
编辑2:在我的Web.Config中注释第43行现在抛出这个:
<authentication mode="None" />
显然,有一些非常非常奇怪的事情。考虑到自从我上次更改Web.Config以来,我已经发布了至少两次。
答案 0 :(得分:1)
结束对项目的备份,从轨道上进行核对,使用新的空白项目进行修复,添加所有必需的NuGet包,然后从备份中复制我直接编辑的所有文件。包括所有迁移文件也有帮助,因为这意味着我可以在我离开的地方拿起数据库。我唯一需要使用细齿梳子的是Web.Config - 我想确保它设置得很完美,所以我像手术医生一样手工编辑它。
仅供参考,我在项目卸载时通过文件系统处理了所有内容,然后将“包含在项目中”的任何内容从头开始创建。
不是理想的情况,但是嘿。这个项目仍在建设中,所以我在重建时最多只损失了一两个小时。困难的部分是倾销我的Team Services存储库,因为它不接受新项目。在我确认新设置100%正常工作后,我这样做了,因为我并不太担心无法在某个日期之前回滚。
答案 1 :(得分:0)
重构解决方案后,我有一个包含注释掉的类的文件,所以它只有using子句和命名空间集。它使用的命名空间不再被任何文件使用,但可能已经以某种方式缓存,因此没有立即出错。
建筑物没有拿起它,导致 aspnet_compiler退出,代码1 错误加上一些其他不相关的错误,这些错误并非错误。删除空类文件修复它。还要从Views / web.config中删除任何旧的命名空间。