将MVC 4.5 Web应用程序添加到webforms 4.5 app的子目录中

时间:2013-05-28 20:57:16

标签: asp.net asp.net-mvc-4 webforms virtual-directory subapplication

我有一个名为约会的webforms 4/5应用程序。我试图从子文件夹/ m或/ mobile运行mvc 4.5移动网站模板应用程序并没有太大的成功。我还在学习,并且正在与IIS挣扎。如果我只是将我的移动应用程序发布到子文件夹中,则会出现以下错误:

"Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level.  This error can be caused by a virtual directory not being configured as an application in IIS."

Line 27:     <authentication mode="Forms">

当我将文件夹设置为虚拟目录或将其转换为应用程序时,我收到以下错误:

Could not load file or assembly 'AjaxControlToolkit' or one of its dependencies. The system cannot find the file specified.

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.IO.FileNotFoundException: Could not load file or assembly 'AjaxControlToolkit' or one of its dependencies. The system cannot find the file specified.

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.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'AjaxControlToolkit' could not be loaded.


=== Pre-bind state information ===
LOG: User = IIS APPPOOL\Dating
LOG: DisplayName = AjaxControlToolkit
 (Partial)
WRN: Partial binding information was supplied for an assembly:
WRN: Assembly Name: AjaxControlToolkit | Domain ID: 8
WRN: A partial bind occurs when only part of the assembly display name is provided.
WRN: This might result in the binder loading an incorrect assembly.
WRN: It is recommended to provide a fully specified textual identity for the assembly,
WRN: that consists of the simple name, version, culture, and public key token.
WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.
LOG: Appbase = file:///D:/WebProjects/Dating/Dating/DatingMobile/
LOG: Initial PrivatePath = D:\WebProjects\Dating\Dating\DatingMobile\bin
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: D:\WebProjects\Dating\Dating\DatingMobile\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/m/03cc50e2/37a5ccf4/AjaxControlToolkit.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/m/03cc50e2/37a5ccf4/AjaxControlToolkit/AjaxControlToolkit.DLL.
LOG: Attempting download of new URL file:///D:/WebProjects/Dating/Dating/DatingMobile/bin/AjaxControlToolkit.DLL.
LOG: Attempting download of new URL file:///D:/WebProjects/Dating/Dating/DatingMobile/bin/AjaxControlToolkit/AjaxControlToolkit.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/m/03cc50e2/37a5ccf4/AjaxControlToolkit.EXE.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/m/03cc50e2/37a5ccf4/AjaxControlToolkit/AjaxControlToolkit.EXE.
LOG: Attempting download of new URL file:///D:/WebProjects/Dating/Dating/DatingMobile/bin/AjaxControlToolkit.EXE.
LOG: Attempting download of new URL file:///D:/WebProjects/Dating/Dating/DatingMobile/bin/AjaxControlToolkit/AjaxControlToolkit.EXE.

Stack Trace: 


[FileNotFoundException: Could not load file or assembly 'AjaxControlToolkit' or one of its dependencies. The system cannot find the file specified.]
   System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
   System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +210
   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +242
   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +17
   System.Reflection.Assembly.Load(String assemblyString) +35
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +122

[ConfigurationErrorsException: Could not load file or assembly 'AjaxControlToolkit' or one of its dependencies. The system cannot find the file specified.]
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +12759734
   System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +214
   System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +334
   System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath) +203
   System.Web.Compilation.BuildManager.ExecutePreAppStart() +152
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1151

[HttpException (0x80004005): Could not load file or assembly 'AjaxControlToolkit' or one of its dependencies. The system cannot find the file specified.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12880068
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +12721257

我在我的webforms应用程序中有ajaxcontroltoolkit但在移动应用程序中没有(浏览到移动路径时是我收到错误)

我已经尝试为我的mvc应用程序设置一个新的应用程序池,但它仍然无法正常工作。如果有人能指出我正确的方向,那就非常了不起

1 个答案:

答案 0 :(得分:0)

我发现这是因为即使目录是虚拟目录或配置为应用程序,web.config文件也会继承父目录中的其他web.config文件。应该可以使用location标记在web.config中包装代码块并指定路径,虽然我不能让它对我有效

http://msdn.microsoft.com/en-us/library/ms178692%28v=vs.100%29.aspx