2012-02-10 50 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