我不知道将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。
答案 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
文件夹中。