我有一个网站,该网站曾经有效:
- ASP.NET 4
- MVC 3
- 实体框架 4.3
- 以 Azure 网络角色运行(我注意到它是 osFamily="1",这很奇怪,因为我预计它是 2 - 但无论如何......)
- Azure SDK 1.7
我已经升级了我的整个代码库,以与大量新玩具保持同步。所以现在是:
- ASP.NET 4.5
- MVC 4(剃刀 2)
- 实体框架 5
- Azure 配置设置为 osFamily="3"
- Azure SDK 1.8(存储客户端库煞费苦心地升级到 2 而不是 1.7)
当我在登台访问该站点时,我得到一个黄色的死机屏幕,说Compiler executable file csc.exe can not be found。我的问题是为什么?
它在本地也可以在发布模式下正常工作。我进行了远程操作,并且这些实例肯定在运行 Windows Server 2012(因此 .NET 4.5??我发现这很难说,因为 .NET 4.5 替换了 .NET 4 文件夹中的 .NET 4 程序集)。
根据响应标头,它肯定在运行 IIS 8,但有趣的是它声称 X-ASPNET-VERSION 是 4.xxxx。这对于 ASP.NET 4 站点是否正常?
更新:
我以 .NET 4 框架为目标并将 osFamily 更改为 2,它现在可以工作了。所以我现在怀疑我有一个使用 .NET 3.5 或 2 的第 3 方程序集(事实上我确信我这样做了),但是当针对高于导入程序集中引用的框架的 .NET 框架时,肯定会使用更高版本的框架??
osFamily="3" 仅安装了 .NET 4 和 4.5,所以我想这是错误的原因,但我对目标的看法不正确吗?我想使用 osFamily="3" 我可以在这里做什么?
堆栈跟踪
[InvalidOperationException: Compiler executable file csc.exe cannot be found.]
System.CodeDom.Compiler.RedistVersionInfo.GetCompilerPath(IDictionary`2 provOptions, String compilerExecutable) +8675071
Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames) +739
Microsoft.CSharp.CSharpCodeGenerator.FromSourceBatch(CompilerParameters options, String[] sources) +3293761
Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromSourceBatch(CompilerParameters options, String[] sources) +64
HibernatingRhinos.Profiler.Appender.Util.GenerateAssembly.Compile(String fileName, String[] sources, IEnumerable`1 assembliesToReference) +1252
HibernatingRhinos.Profiler.Appender.Util.GenerateAssembly.CompileAssembly(IEnumerable`1 sourcesResources, IEnumerable`1 assembliesToReference, String assemblyName) +118
HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.SetupDatabaseDefaultConnectionFactoryIfNeeded() +929
HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.SetupEntityFrameworkIntegration() +80
HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize(EntityFrameworkAppenderConfiguration configuration) +47
HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize() +73
Web4.MvcApplication.Application_Start() +17
[HttpException (0x80004005): Compiler executable file csc.exe cannot be found.]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +12864673
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +175
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +304
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +404
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +475
[HttpException (0x80004005): Compiler executable file csc.exe cannot be found.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12881540
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +12722601