30

我已经安装vs2012 (11.0.50727.1)
我打开了一个新的MVC4 with .NET 4.5解决方案,
我创建了一个简单的HomeController并且我想在本地启动它,我收到了这个非常奇怪的错误:
如何解决它?这是什么错误,为什么会发生???

提前感谢您的任何帮助。

    Server Error in '/' Application.
Entry point was not found.
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.EntryPointNotFoundException: Entry point was not found.

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:


[EntryPointNotFoundException: Entry point was not found.]
   System.Web.Mvc.IDependencyResolver.GetService(Type serviceType) +0
   System.Web.Mvc.DependencyResolverExtensions.GetService(IDependencyResolver resolver) +56
   System.Web.Mvc.SingleServiceResolver`1.GetValueFromResolver() +44
   System.Lazy`1.CreateValue() +180
   System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +22
   System.Lazy`1.get_Value() +10749357
   System.Web.Mvc.SingleServiceResolver`1.get_Current() +15
   System.Web.Mvc.MvcRouteHandler.GetSessionStateBehavior(RequestContext requestContext) +121
   System.Web.Mvc.MvcRouteHandler.GetHttpHandler(RequestContext requestContext) +33
   System.Web.Mvc.MvcRouteHandler.System.Web.Routing.IRouteHandler.GetHttpHandler(RequestContext requestContext) +10
   System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) +9709656
   System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) +82
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.17929 
4

12 回答 12

24

我已将项目从MVC3+.NET4to转换为,并且在调用控制器的操作时MVC4+.NET4.5收到异常。Entry point was not found

我的解决方案是在 web.config 中插入程序集绑定重定向以指向MVC 4程序集:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

我不知道问题的确切原因,也许是一些仍然引用 MVC3 的第三方库。

于 2013-04-01T16:38:38.047 回答
23

当您将项目从 MVC3 切换到 MVC4 并忘记在 web.config 中更改为时,会出现相同的System.Web.WebPages.Razor, Version=1.0.0.0错误System.Web.WebPages.Razor, Version=2.0.0.0

于 2013-02-19T11:04:24.890 回答
11

旧帖子,但如果您在 mvc 问题之前遇到它(System.Mvc.dll 更新,例如 x.0.0.1),您可以检查 bindingRedirect 标记(4.0.0.0 -> 4.0.0.1)

<dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.1" />
  </dependentAssembly> 
于 2014-11-12T14:56:09.070 回答
7

如果您在 WebAPI 控制器中发现此错误 - 您需要修复System.Web.Http的绑定版本

<dependentAssembly>
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
于 2014-09-24T07:12:45.797 回答
3

您还应该检查解决方案中的所有项目是否引用了最新版本的 dll,并且不同子项目使用的版本是否不一致。

尽管运行了 nuget 卸载、安装和更新,但我发现测试项目引用了旧版本的 system.net.http

于 2013-07-23T13:02:36.457 回答
3

如果您使用 .net 4.5 并从 .net 4.0 库向 ModelBinders.Binders 集合添加活页夹,您也会收到此类错误。

于 2014-05-17T13:02:04.317 回答
2

您的 Global.asax.cs 中有类似的内容吗?

private static void InitializeDependencyInjectionContainer(HttpConfiguration config)
{
    container = new UnityContainer();


    container.RegisterType<Site.Web.Data.IDatabaseFactory, Site.Web.Data.DatabaseFactory>();
    container.RegisterType<Site.Web.Data.Interfaces.IUnitOfWork, Site.Web.Data.UnitOfWork>();
    container.RegisterType<Site.Web.Data.Interfaces.IUserRepository, Site.Web.Data.Repositories.UserRepository>();
    container.RegisterType<Site.Web.Data.Interfaces.ISiteRepository, Site.Web.Data.Repositories.SiteRepository>();

从您发布的堆栈跟踪中,您的System.Web.Mvc.IDependencyResolver.GetService(Type serviceType) +0一个(或多个)依赖项无法解决。

您可以尝试将其中的一个或多个注释掉,并尝试缩小哪一个无法解决。

于 2012-12-14T20:56:49.847 回答
0

旧帖子,但只是为任何寻找的人添加

这似乎是一个包罗万象的错误。当我的 web.config 使用外部部分并且该部分从 Visual Studio 项目中排除时,我得到了它,即使用这个

<sessionState configSource="SystemWeb.config" />
于 2014-10-16T10:06:57.393 回答
0

试试这个..在visual studio中转到包管理员控制台并输入:

update-package
于 2015-11-10T18:29:19.923 回答
0

我遇到了这个问题并通过
1.uninstall-Package Microsoft.AspNet.Mvc 解决了它(我需要先卸载其他东西才能成功卸载 AspNet.MVC) 2.Install
-Package Microsoft.AspNet.Mvc -Version 4.0.20710
3 . 重建和部署

于 2016-01-22T14:17:59.000 回答
0

在我的情况下不是 MVC 特定的,但刚刚开始收到此错误:

“/”应用程序中的服务器错误。

未找到入口点。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.EntryPointNotFoundException:找不到入口点。

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[EntryPointNotFoundException:找不到入口点。]

...

System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +8008

版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.6.1055.0

造成这种情况的原因是我已从 Visual Studio 发布到 webserver 文件夹并选择预编译应用程序(使用 .NET 4.5 项目),同时允许预编译站点可更新设置 btw。

可能我的问题是该站点在 IIS 上以 .NET 4.0 运行,而在发布操作期间放置在 bin 文件夹中的预编译版本是 4.5。当我从网站上删除“bin”文件夹时,它再次运行良好。

于 2016-05-28T19:24:40.560 回答
-2

只需用“nuget”更新“System.Web.Mvc”

于 2016-12-19T08:58:11.033 回答