I have a website that has been up and running:
- ASP.NET 4
- MVC 3
- Entity Framework 4.3
- Running in Azure web roles (I noticed that this is osFamily = "1", which is strange since I expected it to be 2 - but anyway ...)
- Azure SDK 1.7
I updated my entire code base to keep abreast of many new toys. So now this is:
- ASP.NET 4.5
- MVC 4 (Razor 2)
- Entity Framework 5
- Azure configuration set to osFamily = "3"
- Azure SDK 1.8 (with a client repository library carefully updated to version 2, not 1.7).
When I access the site at the creation stage, I get a yellow screen of death, saying the csc.exe compiler executable cannot be found . My question is why?
It works great in local mode and in Release mode. I retired and Windows Server 2012 definitely works on instances (why is .NET 4.5? It was hard for me to say, since .NET 4.5 replaces .NET 4 assemblies in .NET 4 folders).
According to the response headers, it definitely works with IIS 8, but it is interesting that X-ASPNET-VERSION is 4.xxxx. Is this normal for an ASP.NET 4 site?
UPDATE:
I aimed at the .NET 4 platform and changed osFamily to 2, and now it works. Therefore, I now suspect that I have a third-party assembly that uses .NET 3.5 or 2 (indeed, I'm sure I do), but , of course, when targeting the .NET platform it is higher than the reference ones in imported assemblies higher version of the frame used
osFamily = "3" only installed .NET 4 and 4.5, so I think this is the cause of the error, but am I wrong about targeting? I want to use osFamily = "3", what can I do here?
Stack trace
[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