2012-02-10 51 views
1

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

我开始:

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

,没有工作。例外是:

System.IO.FileNotFoundException:未能加载文件或程序集 'System.Web.Helpers,版本= 1.0.0.0,文化=中性公钥= 31BF3856AD364E35' 或它的一个依赖。该系统找不到指定的文件。 System.AppDomain.Load(System.String assemblyString,System.Security.Policy.Evidence assemblySecurity,Boolean refonly)上的文件名:'System.Web.Helpers,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31BF3856AD364E35' System.AppDomain.Load中的/root/iws-snippets/mono-install-scripts/fedora/build/mono-2.10.8/mcs/class/corlib/System/AppDomain.cs:785 中的[0x00047](System。 String assemblyString)[0x00000] in /root/iws-snippets/mono-install-scripts/fedora/build/mono-2.10.8/mcs/class/corlib/System/AppDomain.cs:762 at(wrapper remoting-invoke -with-check)System.AppDomain:在System.Reflection.Assembly.Load(System.String assemblyString)中加载(字符串) /root/iws-snippets/mono-install-scripts/fedora/build/mono中的[0x00000] -2.10.8/mcs/class/corlib/System.Reflection/Assembly.cs:540 at System.Web.Compila tion.BuildManager.LoadAssembly(System.Web.Configuration.AssemblyInfo info,System.Collections.Generic.List`1 al)[0x00000] in /root/iws-snippets/mono-install-scripts/fedora/build/mono-2.10 ./mcs/class/System.Web/System.Web.Compilation/BuildManager.cs:1294 at System.Web.Compilation.BuildManager.GetReferencedAssemblies()[0x000b4] in/root/iws-snippets/mono-install- scripts/fedora/build/mono-2.10.8/mcs/class/System.Web/System.Web.Compilation/BuildManager.cs:1123 at System.Web.Compilation.BuildManager.CallPreStartMethods()[0x00013] in/root /iws-snippets/mono-install-scripts/fedora/build/mono-2.10.8/mcs/class/System.Web/System.Web.Compilation/BuildManager.cs:555

现在我已经搬到:

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

但这种失败,出现异常:

System.Reflection.ReflectionTypeLoadException:模块中的类不能被加载。 (包装托管到本机)System.Reflection.Assembly:GetTypes(System.Reflection.Assembly,bool) at System.Reflection.Assembly.GetExportedTypes()[0x00000] in/root/iws-snippets/mono-在System.Web.WebPages.ApplicationParts.ResourceAssembly.GetTypes()[0x00000] in:install-scripts/fedora/build/mono-2.10.8/mcs/class/corlib/System.Reflection/Assembly.cs:356 at System.Web.WebPages.ApplicationParts.ApplicationPartRegistry.Register(System.Web.WebPages.ApplicationPart applicationPart,System.Func`1 registerPageAction)[0x00000] in:0 at System.Web.WebPages.ApplicationParts.ApplicationPartRegistry.Register( System.Web.WebPages.ApplicationPart applicationPart)[0x00000] in:0 at System.Web.WebPages.ApplicationPart.Register(System.Web.WebPages.ApplicationPart applicationPart)[0x00000] in:0 位于System.Web.WebPages.Administration.PreApplicationStartCode.Start()[0x00000]位于:0(包装托管到位)的System.Web.WebPages.Administration.SiteAdmin.RegisterAdminModule()[0x00000]处的 中: 本机)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 [ ]参数,System.Globalization.CultureInfo culture)/root/iws-snippets/mono-install-scripts/fedora/build/mono-2.10.8/mcs/class/corlib/System.Reflection/MonoMethod.cs中的[0x000d5] :226

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

回答

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组件是剃刀的一部分。确保您已在服务器上安装了ASP.NET MVC 3,或者如果您正在执行bin deploying此程序集及其所有依赖项都存在于您的应用程序的bin文件夹中。

+0

原来,如果我继续阅读MonoDevelop文档,则会有一个与您所提及的完全一致的部署选项。非常感激!关于最终结构或者如何手动部署,很少有文档。 “只需点击发布”就是所有文章的99%。 – 2012-02-10 12:34:22