J'ai installé vs2012 (11.0.50727.1)
,
J'ai ouvert un nouveauMVC4 with .NET 4.5
solution,
Je crée un HomeController
simple et comme je voulais le démarrer localement, j’ai reçu cette erreur très étrange:
Comment peut le résoudre? Quelle est cette erreur et pourquoi ça arrive ???
Merci d'avance pour votre aide.
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
La même erreur apparaît lorsque vous passez de MVC3 à MVC4 et oubliez de remplacer System.Web.WebPages.Razor, Version=1.0.0.0
par System.Web.WebPages.Razor, Version=2.0.0.0
dans le fichier web.config.
J'ai converti un projet de MVC3+.NET4
en MVC4+.NET4.5
et je reçois l'exception Entry point was not found
lors de l'appel d'une action d'un contrôleur.
Ma solution consistait à insérer une redirection de liaison d'assemblage dans web.config pour pointer sur les assemblys 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>
Je ne connais pas la cause exacte du problème, peut-être une bibliothèque tierce qui fait encore référence à MVC3.
Ancienne publication mais si vous la rencontrez avant les problèmes mvc (mise à jour System.Mvc.dll, par exemple x.0.0.1), vous pouvez vérifier la balise 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>
Si vous interceptez cette erreur dans Web API Controller - vous avez besoin d'une liaison de réparation Version de 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>
vous devez également vérifier que tous les projets de vos solutions référencent les versions les plus récentes des dll et qu'aucune version incohérente n'est utilisée par différents sous-projets.
malgré l'exécution du programme de désinstallation, d'installation et de mise à jour de nuget, j'ai découvert que le projet de tests faisait référence à une ancienne version de system.net.http
Si vous utilisez .net 4.5 et ajoutez un classeur à la collection ModelBinders.Binders à partir d'une bibliothèque .net 4.0, vous obtiendrez également cette erreur.
Avez-vous quelque chose comme ça dans votre 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>();
Dans la trace de pile que vous avez postée, System.Web.Mvc.IDependencyResolver.GetService(Type serviceType) +0
suggère qu'une (ou plusieurs) de vos dépendances ne soient pas résolues.
Vous pouvez essayer de commenter un ou plusieurs d'entre eux et essayer de déterminer lequel ne résout pas le problème.
Pas spécifique à MVC dans mon cas, mais venait juste de commencer à avoir cette erreur:
Erreur serveur dans l'application '/'.
Le point d'entrée n'a pas été trouvé.
Description: une exception non gérée s'est produite lors de l'exécution de la demande Web en cours. Consultez la trace de la pile pour plus d’informations sur l’erreur et son origine dans le code.
Détails de l'exception: System.EntryPointNotFoundException: le point d'entrée n'a pas été trouvé.
Erreur de source:
Une exception non gérée a été générée lors de l'exécution de la requête Web en cours. Les informations concernant l'origine et l'emplacement de l'exception peuvent être identifiées à l'aide de la trace de pile d'exceptions ci-dessous.
Trace de la pile:
[EntryPointNotFoundException: le point d'entrée n'a pas été trouvé.]
...
System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +8008
Informations de version: Microsoft .NET Framework Version: 4.0.30319; Version ASP.NET: 4.6.1055.0
La raison en est que j'ai publié dans le dossier du serveur Web à partir de Visual Studio et que j'ai sélectionné l'option de précompiler l'application (à l'aide d'un projet .NET 4.5), ce qui permet au site précompilé d'être mis à jour avec le paramètre btw.
Mon problème était probablement que le site était exécuté sur .NET 4.0 sur IIS, alors que la version précompilée placée dans le dossier bin lors de l'action de publication était réservée à la version 4.5. Lorsque j'ai supprimé le dossier "bin" du site Web, il a fonctionné correctement à nouveau.
Ancien post mais juste à ajouter pour ceux qui cherchent
Cela semble être une attrape toute erreur. Je l’ai compris quand mon script de configuration Web utilisait une section externe et que cette section était exclue du projet Visual Studio,
<sessionState configSource="SystemWeb.config" />
Essayez ceci .. dans Visual Studio, accédez à Package Administrator Console et tapez:
update-package
J'ai fait face à ce problème et l'ai résolu par
1. uninstall-Package Microsoft.AspNet.Mvc (Je dois désinstaller autre chose avant de pouvoir désinstaller AspNet.MVC)
2. Package d'installation Microsoft.AspNet.Mvc-Version 4.0.20710
3. Reconstruire et déployer