• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > asp.net动态更新

asp.net动态更新

作者:失足程序员 字体:[增加 减小] 来源:互联网 时间:2017-08-02

失足程序员通过本文主要向大家介绍了asp.net,asp net培训,asp和asp.net的区别,零基础学asp.net,c#和asp.net的区别等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

看到这里你可能会问,asp.net程序本身就是动态网站,还要如何动?

 

我这里所谓的动起来,是指动态加载,动态更新。好吧可能你又要问了动态网站本来就是动态加载,动态更新的。asp.net的程序依附于IIS(当然不是唯一)运行的,有代码的更新,只需要拷贝到对应的目录下面。刷新界面就加载最新程序了。无需重启IIS。

但是我这里所说的是动态加载脚本。这里的脚本是C#的类文件(*.cs)文件动态编译加入内存运行实例。

可能有人要问,这个有什么必要????

如果程序有修改,修改-编译-拷贝。就是最新程序,不会影响线上程序。可是你想想,如果是一个很小的问题呢?如果因为不同的需求变更,很小的代码修改就行。那有必要编译代码,上传文件嘛?

又或者你现在身边的电脑没有编译工具,但是需要需改程序的某些功能,在允许范围内情况下,你该怎么办?

也许你说这些都是无聊的。没有必要,没有使用场景~!、

好吧,我只能说你没有遇到而已,你问问你身边管理发布程序部署程序的人,他们的难处吧,每一次小小的bug更新,都要拷贝多个文件上传至服务器是一件多么麻烦的事情。

好吧。不废话了,我来来讲讲为什么我要写这篇文章,我是遇到了什么情况吧。

这段时间,我给一个公司的门户网站改版,前台的展示页面要求纯静态页面。

纯静态页面也就要求在后台更新了网站内容以后,需要发布生成纯静态页面放在网站目录下用于访问~!

我用到的技术就是,通过模板文件,生成内容页,然后保存文件。

但是模板文件里面包含一些内容需要在C#代码里面构建,然后替换模板文件内容。

C#里面构建的HTML里面或许标签,或许css样式。有问题需要更新,或是需求变更需要更新,这个都是常事。但是一旦有更新就去修改代码,发布,是一件非常头疼的事情,我之前就描述过了。

在之前的文章 一步一步开发Game服务器(三)加载脚本和服务器热更新(二)完整版 介绍过如果加载脚本文件,可是之前的测试有一个问题没有测试过在asp.net下运行。

问题在于读取本程序加载的引用的程序集问题。

之前查询引用程序集,的时候查找了引用的程序集下面引用的程序集,导致在IIS加载了一些无法加载的文件,

            var asss = AppDomain.CurrentDomain.GetAssemblies();
            foreach (var item in asss)
            {
                foreach (var item222 in item.GetModules(false))
                {
                    ddlNames.Add(item222.FullyQualifiedName);
                }
            }

需要改成这样如下,需要查找引用程序集下引用的程序集

            var asss = AppDomain.CurrentDomain.GetAssemblies();
            foreach (var item in asss)
            {
                if (!item.ManifestModule.IsResource() && item.ManifestModule.FullyQualifiedName.EndsWith(".dll") || item.ManifestModule.FullyQualifiedName.EndsWith(".DLL"))
                {
                    ddlNames.Add(item.ManifestModule.FullyQualifiedName);
                }
            }

 

我们创建一个IScript文件夹创建一个 ICreateScript.cs 接口文件

namespace TestWebLoadScript.IScripts
{
    public interface ICreateScript : IBaseScript
    {

        void CreateHtml(Page page, string type);

    }
}

之前的文章里面讲述了,,就是我定义的脚本加载器,不知道你加载了那些类,由于是脚本类不知道类名和实例,所以通过接口控制,也可看作接口编程。

 

接下来我们创建一个 Scripts 文件夹 然后创建 PC 文件 然后下面创建 Default文件夹

创建 Indexhtml.temp 文件存放模板代码

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>我是Default版本</title>
</head>
<body>
    <form id="form1">
    <div>
    <%string%>
    </div>
    </form>
</body>
</html>

上面的 <%string%> 是替换关键字

创建 CreateIndexScript.cs 文件来实现html文件的创建

namespace TestWebLoadScript.Scripts.PC.Default
{
    public class CreateIndexScript : ICreateScript
    {
        string filePath = "C:/html/PC/index.html";
        public void CreateHtml(System.Web.UI.Page page, string type)
        {
            if (type == "Default")
            {
                


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Asp.net SignalR 应用并实现群聊功能 开源代码
  • asp.net动态更新
  • asp.net利用母版制作页脚效果
  • Asp.Net服务器发送HTTP标头后无法设置内容类型的问题解决
  • 使用asp.net mvc,boostrap及knockout.js开发微信自定义菜单编辑工具(推荐)
  • 详解ASP.NET MVC 常用扩展点:过滤器、模型绑定
  • ASP.NET Core发送邮件的方法
  • 在ASP.NET Core 中发送邮件的实现方法(必看篇)
  • ASP.NET MVC从视图传参到控制器的几种形式
  • Asp.net core WebApi 使用Swagger生成帮助页实例

相关文章

  • 2017-05-11.net获取本机公网IP地址示例
  • 2017-05-11asp.net中Response.Redirect与Server.Transfer的区别分析
  • 2017-05-11在后台cs中调用js中示例
  • 2017-05-11随机图片生成器制作方法分享
  • 2017-05-11asp.net GridView控件中模板列CheckBox全选、反选、取消
  • 2017-05-11ExtAspNet GridPanel的一般用法
  • 2017-05-11AspNetPager控件的最基本用法示例介绍
  • 2017-05-11适用与firefox ASP.NET无刷新二级联动下拉列表
  • 2017-05-11js与ASP.NET 中文乱码问题
  • 2018-08-20ASP.NET WebAPI连接数据库的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Asp.net第三方控件ComboBox组合框介绍
    • ASP.NET通过第三方网站Bitly实现短链接地址程序
    • ASP.NET缓存 方法和最佳实践
    • asp.net关于Cookie跨域(域名)的问题
    • C#.net格式化时间字符串达到不同的显示效果
    • sealed在C#中的作用说明
    • asp.net web大文件上传带进度条实例代码
    • linq to sql 中,如何解决多条件查询问题,答案,用表达式树! (下)
    • asp.net 更改gridview pageSize的方法
    • asp.net 文件下载的通用方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有