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