我使用VS 2015 RC和MVC模板创建了一个新的应用程序,并且没有修改任何代码行我有这个错误:
Method not found: '!!0[] System.Array.Empty()'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.MissingMethodException: Method not found: '!!0[] System.Array.Empty()'.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[MissingMethodException: Method not found: '!!0[] System.Array.Empty()'.]
SAASApp.BundleConfig.RegisterBundles(BundleCollection bundles) in C:\Proyectos\SAASApp\SAASApp\App_Start\BundleConfig.cs:29
SAASApp.MvcApplication.Application_Start() in C:\Proyectos\SAASApp\SAASApp\Global.asax.cs:18
[HttpException (0x80004005): Method not found: '!!0[] System.Array.Empty()'.]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +483
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +176
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +350
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +305
[HttpException (0x80004005): Method not found: '!!0[] System.Array.Empty()'.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +661
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +96
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +189
第一次发生在我身上,所以我现在卡住了
答案 0 :(得分:209)
我在生产服务器上遇到这种情况,而在开发机器上一切正常。
在目标计算机上安装.NET Framework 4.6解决了这个问题。
答案 1 :(得分:23)
很抱歉迟到了,但如果其他人通过TeamCity构建遇到此问题,我可以描述我们必须做的事情。
.NET 4.6安装在我们的构建服务器上(但不在应用程序服务器上),RunnerType是Visual Studio(sln),Visual Studio选项设置为2015。
这迫使构建使用4.6,我需要将Visual Studio选项更改为2013以强制构建使用4.5.2
答案 2 :(得分:9)
仅面对面临这种情况的其他人:
如果您查看web.config文件,您会发现在<compilation>
标记中,您将值targetFramework
设置为低于4.6的版本。但事实上,在构建时,您通过.NET FrameWork 4.6或更高版本发布了您的应用程序(对应于ASP.NET MVC 4.6及更高版本)。
因此,如果您将targetFramework
的值更改为4.6,则错误会将形状更改为:
'targetFramework'属性当前引用的版本晚于安装的.NET Framework版本。
这是真正的错误,您可以通过在Web App的生产环境中安装适当版本的.Net FrameWork来摆脱它。
答案 3 :(得分:2)
将.NET Framework更新到最新版本(4.7.2)解决了该问题。 感谢@Andrey Kovalenko的解决方案。
但是错误不应该是这样的
我不确定是否告诉每个客户有关更新其.NET Framework的信息。我在安装了 Windows Embedded OS 的系统上(尤其是在生产环境中)遇到了这个问题。
从我们的代码库本身是否还有其他方法可以克服此问题?
答案 4 :(得分:1)
我尝试这些解决方案但没有成功。
我的解决方案是转到应用程序池,转到2.0,在浏览器上执行该站点,看到错误(因为版本错误)并转回4.0和“voilà”,我明白了,网站开。
答案 5 :(得分:0)
就我而言,我的Windows Server 2012 R2上安装了一个损坏的.NET。我不得不安装更新版本的.NET(v4.7.1),该网站现在正在运行。
答案 6 :(得分:0)
在我的情况下,我无法访问IIS本身,当我使用的单一方法没有任何特殊内容时,我遇到了这个问题.net 2。
解决方案:我已经提取了该方法并使用.net 2.0创建了一个类库,它可以正常工作。
答案 7 :(得分:0)
也许为时已晚,但我遇到了同样的问题,并已修复如下。 我使用Visual Studio 2015,默认情况下,web.config上的配置编译指向.NET FrameWork 4.6。我不能只在web.config文件上进行编辑。如果您无法在服务器上安装.NET FrameWork 4.6,并且您的应用程序不要使用它。
答案 8 :(得分:0)
我已将4.6.x降级为4.5.2,并且效果很好。