部署的ASP.NET MVC 3项目的文件夹结构是什么?

时间:2012-02-10 07:11:27

标签: asp.net-mvc-3 deployment mono

我不知道将MVC 3应用程序部署到Web服务器需要什么文件和文件夹结构。我无法使用Visual Studio进行部署,因此我尝试手动创建结构。部署的MVC 3应用程序的文件夹结构是什么?

我开始时:

.../appname/
            *.dll
            Web.Config
            App_Data/ # nothing in this directory

哪个不起作用。例外是:

  

System.IO.FileNotFoundException:无法加载文件或程序集“System.Web.Helpers,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31BF3856AD364E35”或其依赖项之一。该系统找不到指定的文件。   文件名:'System.Web.Helpers,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31BF3856AD364E35'     在System.AppDomain.Load(System.String assemblyString,System.Security.Policy.Evidence assemblySecurity,Boolean refonly)[0x00047] in /root/iws-snippets/mono-install-scripts/fedora/build/mono-2.10.8 /mcs/class/corlib/System/AppDomain.cs:785     在/root/iws-snippets/mono-install-scripts/fedora/build/mono-2.10.8/mcs/class/corlib/System/AppDomain.cs中的System.AppDomain.Load(System.String assemblyString)[0x00000] :762     at(wrapper remoting-invoke-with-check)System.AppDomain:Load(string)     在/root/iws-snippets/mono-install-scripts/fedora/build/mono-2.10.8/mcs/class/corlib/System.Reflection中的System.Reflection.Assembly.Load(System.String assemblyString)[0x00000] /Assembly.cs:540     在System.Web.Compilation.BuildManager.LoadAssembly(System.Web.Configuration.AssemblyInfo info,System.Collections.Generic.List`1 al)[0x00000] / root / iws-snippets / mono-install-scripts / fedora /建立/单2.10.8 / MCS /班/ System.Web程序/ System.Web.Compilation / BuildManager.cs:1294     在/root/iws-snippets/mono-install-scripts/fedora/build/mono-2.10.8/mcs/class/System.Web/System.Web中的System.Web.Compilation.BuildManager.GetReferencedAssemblies()[0x000b4]中.Compilation / BuildManager.cs:1123     在/root/iws-snippets/mono-install-scripts/fedora/build/mono-2.10.8/mcs/class/System.Web/System.Web中的System.Web.Compilation.BuildManager.CallPreStartMethods()[0x00013]中.Compilation / BuildManager.cs:555

现在我搬到了:

.../appname/bin/
               *.dll
               Web.Config
               App_Data/

但这与例外情况失败了:

  

System.Reflection.ReflectionTypeLoadException:无法加载模块中的类。     at(wrapper managed-to-native)System.Reflection.Assembly:GetTypes(System.Reflection.Assembly,bool)     在/root/iws-snippets/mono-install-scripts/fedora/build/mono-2.10.8/mcs/class/corlib/System.Reflection/Assembly.cs中的System.Reflection.Assembly.GetExportedTypes()[0x00000]中:356     在System.Web.WebPages.ApplicationParts.ResourceAssembly.GetTypes()[0x00000] in:0     在System.Web.WebPages.ApplicationParts.ApplicationPartRegistry.Register(System.Web.WebPages.ApplicationPart applicationPart,System.Func`1 registerPageAction)[0x00000] in:0     在System.Web.WebPages.ApplicationParts.ApplicationPartRegistry.Register(System.Web.WebPages.ApplicationPart applicationPart)[0x00000] in:0     在System.Web.WebPages.ApplicationPart.Register(System.Web.WebPages.ApplicationPart applicationPart)[0x00000] in:0     在System.Web.WebPages.Administration.SiteAdmin.RegisterAdminModule()[0x00000] in:0     在System.Web.WebPages.Administration.PreApplicationStartCode.Start()[0x00000]中:0     at(wrapper managed-to-native)System.Reflection.MonoMethod:InternalInvoke(System.Reflection.MonoMethod,object,object [],System.Exception&)     at System.Reflection.MonoMethod.Invoke(System.Object obj,BindingFlags invokeAttr,System.Reflection.Binder binder,System.Object [] parameters,System.Globalization.CultureInfo culture)[0x000d5] in / root / iws-snippets / mono -install的脚本/ fedora的/生成/单2.10.8 / MCS /类/ corlib /的System.Reflection / MonoMethod.cs:226

我应该提一下,我正在尝试部署到mod_mono(在Apache上运行的Mono - Cent OS 5)。但是,所有文档都告诉我,部署就像将标准MVC应用程序部署到IIS一样。我希望文件夹结构是我当前错误的原因。我在部署目标中拥有Web.Helpers作为.dll。

1 个答案:

答案 0 :(得分:4)

  

部署的MVC 3应用程序的文件夹结构是什么?

Root -
     App_Data - if you are using this folder to store files or db it must be present
     |
     bin - all required assemblies
     |
     web.config
     |
     global.asax
     |
     Views -
           |
           Home
           |
           Shared
           |
           web.config
           |
           _ViewStart.cshtml

System.Web.Helpers程序集是Razor的一部分。确保您已在服务器上安装了ASP.NET MVC 3,或者您正在执行bin deploying此程序集及其所有依赖项都存在于应用程序的bin文件夹中。