我可以使用ASP.NET获得“WAR文件”类型部署吗?
发布时间:2020-12-16 07:14:08 所属栏目:asp.Net 来源:网络整理
导读:有时候,精通J2EE的人会看到ASP.NET并且想知道,将应用程序部署为单个部件的支持在哪里? JSP / Servlet应用程序可以部署为WAR文件,其中包含该单个存档中的所有页面,内容,元数据和代码.战争文件可以版本化,轻松移动.可以确保整个应用程序包含在一个单元中. 这
有时候,精通J2EE的人会看到ASP.NET并且想知道,将应用程序部署为单个部件的支持在哪里? JSP / Servlet应用程序可以部署为WAR文件,其中包含该单个存档中的所有页面,内容,元数据和代码.战争文件可以版本化,轻松移动.可以确保整个应用程序包含在一个单元中.
这不是ASP.NET的主流方法.人们做什么?他们是否诉诸复制目录和所有无数文件?这对ASP.NET开发人员来说不是问题吗? (这是一种欺骗,因为我会建议我自己的答案) 解决方法
尽管不是ASP.NET中的主流方法,但使用名为VirtualPathProvider for ASP.NET的构造非常有可能.有了它,您可以使用非文件系统的东西来提供网站内容.例如,您可以直接从ZIP文件中提供ASP.NET网站,而不是先将文件解压缩到磁盘.
Here’s a download演示或说明了这个概念,使用DotNetZip库来帮助ASP.NET将内容拉出zip. 有趣的代码位: using Ionic.Zip; namespace Ionic.Zip.Web.VirtualPathProvider { public class ZipFileVirtualPathProvider : System.Web.Hosting.VirtualPathProvider { ZipFile _zipFile; public ZipFileVirtualPathProvider (string zipFilename) : base () { _zipFile = ZipFile.Read(zipFilename); } ~ZipFileVirtualPathProvider () { _zipFile.Dispose (); } public override bool FileExists (string virtualPath) { string zipPath = Util.ConvertVirtualPathToZipPath (virtualPath,true); ZipEntry zipEntry = _zipFile[zipPath]; if (zipEntry != null) { return !zipEntry.IsDirectory; } else { // Here you may want to return Previous.FileExists(virtualPath) instead of false // if you want to give the previously registered provider a process to serve the file return false; } } public override bool DirectoryExists (string virtualDir) { string zipPath = Util.ConvertVirtualPathToZipPath (virtualDir,false); ZipEntry zipEntry = _zipFile[zipPath]; if (zipEntry != null) { return zipEntry.IsDirectory; } else { // Here you may want to return Previous.DirectoryExists(virtualDir) instead of false // if you want to give the previously registered provider a chance to process the directory return false; } } public override VirtualFile GetFile (string virtualPath) { return new ZipVirtualFile (virtualPath,_zipFile); } public override VirtualDirectory GetDirectory (string virtualDir) { return new ZipVirtualDirectory (virtualDir,_zipFile); } public override string GetFileHash(string virtualPath,System.Collections.IEnumerable virtualPathDependencies) { return null; } public override System.Web.Caching.CacheDependency GetCacheDependency(String virtualPath,System.Collections.IEnumerable virtualPathDependencies,DateTime utcStart) { return null; } } } VPP构造适用于ASP.NET 2.0或更高版本,适用于任何网站.您当然可以根据数据库,CMS或……来调整内容来源. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在ASP.NET中动态添加文本框?
- 在asp.net中查看状态
- iis-7 – ASP经典IIS7问题
- asp.net-mvc – 如何在MVC4中调用自定义模型绑定器?
- asp.net-mvc – 如何降级Visual Studio 2012中的Entity Fra
- asp.net-mvc – MVC 3远程验证字段具有复杂的名称
- ASP.net C#:如何使用File.ReadLines(fileName).GetEnumera
- asp.net – 我的C#Web应用程序项目中缺少IdentityConfig.cs
- asp.net-web-api – 如何只获取没有值的Odata.Count
- asp.net-mvc-4 – 如何在ASP.Net MVC 4中定义特定区域的布局
推荐文章
站长推荐
- .net – 动态创建的控件未触发事件处理程序
- iis – 如何查看池中的哪个asp.net应用程序使用的
- ASP.NET MVC AJAX文档在哪里?
- asp.net-mvc – 授权属性不工作MVC 5
- ASP.NET MVC – 更新预编译的Razor View文件直播
- asp.net-mvc – 如何使用UpdateModel进行单元测试
- asp.net – 相当于[DataMember(Name =“Test”)]
- asp.net-mvc – 当我尝试在我的asp.net mvc中导入
- asp.net-mvc – Asp.net MVC – 我可以从不同的视
- asp.net-mvc – TryUpdateModel与强类型方法参数
热点阅读