当前位置: 首页 > 编程语言 > C#

WebActivator.PreApplicationStartMethod不起作用分享

时间:2023-04-10 22:06:58 C#

WebActivator.PreApplicationStartMethod不起作用[assembly:WebActivator.PreApplicationStartMethod(typeof(MyApp.App_Start.StructureMapMvc),"Start")]namespaceMyApp.App_Start{publicstaticclassStructureMapMvc{publicstaticvoidStart(){varcontainer=IoC.Initialize();DependencyResolver.SetResolver(新的SmDependencyResolver(容器));这是我的代码,应该在global.asax中的Application_start之前运行。我正在将我的Web项目从mvc3升级到mvc4。因此,在那个过程中,我在命名空间中犯了一个错误。这在我更正我的命名空间之前起作用了。它不再有效。我在C:WindowsMicrosoft.NETFramework64versionxxxxxx中重置了iis/flusheddns/rebuiltsolution/deletedtemporary.netfiles...TemporaryASP.NETFilesroot。什么都不管用。我错过了什么吗?Initialize()方法具有依赖于解析内容的所有结构映射内容。所以,如果不解决这个问题,我就无法前进。经过这么多小时试图诊断问题,我需要帮助。如果您的代码在网站项目中(即在App_Code文件夹下),则不能使用PreApplicationStartupMethod!您可以改用PostApplicationStartupMethod。“Pre”方法在global.asax*Application_Start*运行之前执行,而“Post”方法在之后执行。我浪费了一两个小时才弄明白,所以希望这能帮助其他人避免这种情况!对于WebActivator版本1.5.3,MyClass.cs.pp文件不能仅存在于App_Start文件夹中,而必须存在于contentApp_Start文件夹中,以便nugetinstall在目标项目的App_Start中创建转换后的文件。据我所知,这是没有记录的。注意:只要原始.nupkg是使用传统文件系统方法使用nugetpack构建的,此解决方案似乎就有效,但在使用针对特定.csproj文件的nugetpack时则无效。我的经验是,如果您的项目设置(在.csproj.user或.vbproj.user中)具有NoStartPage设置,那么解决方法是将其设置为CurrentPage并且WebActivator将不起作用它应该在您下次调试时起作用.此外,由于它在.user文件中(通常不包含在svn中),因此很难确定它在某些开发环境中的工作方式而不是其他开发环境。对我来说,我遇到的问题是在使用NuGet.Server下载创建私有NuGet存储库时(它使用了WebActivatorExPreApplicationStartMethod属性)。我所做的是创建一个空的网站项目。这是不正确的:它需要是一个空的Web应用程序项目。创建空的Web应用程序并重新安装NuGet.Server后,一切正常。所以:如果你曾经使用过一个空的网站项目,这可能就是你遇到问题的原因。请改用空的Web应用程序项目。我认为EmptyWebSite项目缺少一些使System.Web.PreApplicationStartMethod(由WebActivatorEx使用)工作的ASP.NET“胶水”。也许知道更多细节的人可以解释为什么会这样?我的问题是双重的。1)不声明类型的完整路径2)将属性放在命名空间内,而不是在我修复这两个问题之前。以上就是C#学习教程的全部内容:WebActivator.PreApplicationStartMethod不起作用。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——MyApp.Api.Controllers{publicclassMyController:ApiController{publicstaticvoidAutoMapperStart(){MyMapperConfig.DefineMappings();}}}本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: