uniGUI执行程序部署有3种形式

1、ISAPI模式

部署在IIS或Apache,程序编译为Dll形式,没有试,准备后续专门测试一下。

2、标准执行文件模式

将软件编译成一个独立的Exe文件,包括了WEB服务和业务内容,是uniGUI部署方式中最简单的一种。该方式最大特点是可以进行代码跟踪,同一般exe程序调试一样,在Debug模式下程序调试非常方便。运行exe后就可以直接打开页面进行测试,通过任务栏上的图标可以打开服务监控页面,监控服务程序的运行情况,如下图:

3、Windows服务模式

将软件编译成Windows下的Service模式,并自动启动。从工程文件上看,与一般的程序工程文件略有差异,这里不详述。另外工程中增加了一个ServiceModule.pas文件和对应的窗体文件,该模块单元定义了Windows Service的一些属性,包括名称、依赖等,我只修改了DisplayName属性,其他属性都采用缺省。

特别需要注意的是:不要尝试修改该文件的文件名和模块类名,否则系统无法识别,编译能通过,但运行时报无法启动,估计是内部代码上写死了。

注册Service的方式同一般的Windows Service程序,通过命令行加 –install参数,注销用 –uninstall参数,如下:

MyServiceApp –install

MyServiceApp -uninstall

启动用命令行,如下:

net start UniServiceModule

UniServiceModule就是模块的类名不要前缀T

在实际应用中,我采用了2个工程,一个是标准执行文件模式,Debug+Win32,用于程序调试,另外一个工程采用Windows Service模式,Release + Win64,用于部署运行。在少量客户端(<5个)情况下,运行效果非常不错,我打开一个2万条记录的表,按照50条/页进行分页显示,从数据获取到第一页数据展示,本地大约在3~4秒之间,云服务器(带宽 10M,实际检测复制文件时<200KByte/秒)上大约在6~7秒,获取第二页数据大约需要1秒。

最关心的是该服务程序在较多客户终端(300~500个)情况下的性能,按照作者的话说是不取决于程序,而取决于服务器硬件条件。拟在近期用WinRunner做个测试,看看具体效果,主要是ISAPI 和 Windows Service两种模式的性能。

uniGUI试用笔记(九)的更多相关文章

  1. uniGUI试用笔记(九)uniGUI执行程序部署有3种形式1

    uniGUI执行程序部署有3种形式 1.ISAPI模式 部署在IIS或Apache,程序编译为Dll形式,没有试,准备后续专门测试一下. 2.标准执行文件模式 将软件编译成一个独立的Exe文件,包括了 ...

  2. uniGUI试用笔记(十三)调用WebService

    今天尝试用uniGUI做Web服务器,调用应用服务器的WebService,遇到些问题记录下来备忘. 1.对WebService的调用同一般App程序,只是注意如果WebService的执行时间较长, ...

  3. uniGUI试用笔记(十一)

    最近研究了一下UniGUI的TuniDBGrid,记录一下免得忘记了. TuniDBGrid的重要属性包括: 1.列—TUniDBGridColumns和TUniDBGridColumn 每个列对象( ...

  4. uniGUI试用笔记(十)

    今天用LoadRunner对uniGUI的Standalone模式的程序进行了一次压力测试,程序采用三层模式,将应用服务器与Web服务器分离,由于条件限制,数据库.应用服务和Web服务都部署在同一条云 ...

  5. uniGUI试用笔记(八)

    在业务系统中常常使用回车键(Enter)替代Tab键完成焦点跳转,在uniGUI下,可以不用代码,直接使用TUniForm的NavigateKeys进行设置: 其中Next和Prior决定了焦点向下一 ...

  6. uniGUI试用笔记(七)

    uniGUI的文件下载由于TUniSession的存在而变得非常简单,最典型的一个例子就是将列表中的所有数据导出到Excel中.服务器上采用TMS FlexCel控件,先将数据集中的记录导入到Exce ...

  7. uniGUI试用笔记(六)

    uniGUI提供了一个文件上传控件TUniFileUpload,进行数据的导入就变得比较容易.首先将TUniFileUpload控件放置在窗体上,按下导入按钮后,执行TUniFileUpload的文件 ...

  8. uniGUI试用笔记(五)

    uniGUI的主窗体可以采用多页面方式进行管理,参考网上的资料,都是用TUniFrame + TUniPageControl 来实现,尝试了一下,效果还不错,如下图: 用TUniFrame 能够使用继 ...

  9. uniGUI试用笔记(四)

    uniGUI下有专用的登录窗体类:TUniLoginForm,该类属于AppForm,构建代码为: function frmWebLogin: TfrmWebLogin; begin Result : ...

随机推荐

  1. MFC CEdit控件 自动换行

    属性设置: Auto HScroll : False Auto VScroll : True Multiline        : Ture Want Return : Ture 亲自测试,值得信赖!

  2. jQuery-导航下拉菜单-实用简单

    /*CSS代碼*/ /*導航*/ .nav{background: url("../img/menu_bar.gif") repeat-x;} .nav ul li{display ...

  3. 在linux中配置mysql的过程

    以华为企业云中的CentOS 7 为例. 1. 首先要安装相应的包,这个使用各种linux发行版的包管理工具就行,不再赘述.有一点需要注意,现在许多linux发行版将mariadb作为MySQL的默认 ...

  4. word中加入endnote

    http://jingyan.baidu.com/article/f54ae2fc3926d91e92b849c2.html 1.如果安装完endnote后,word中没有出现 endnote菜单,则 ...

  5. 4.无监督学习--K-means聚类

    K-means方法及其应用 1.K-means聚类算法简介: k-means算法以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低.主要处理过程包括: 1.随机选择k个点作为 ...

  6. 20155228 实验四 Android开发基础

    20155228 实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局管理器的使用: 3.掌握An ...

  7. 20165305 苏振龙《Java程序设计》第四周学习总结

    第五章 继承: 面向对象中,为避免多个类间重复定义共同行为.(简单说就是将相同的程序代码提升为父类.) 特点: 这里接触到了新的关键词,extends,在java语言中用estends来继承父类的行为 ...

  8. Linux服务器安装部署redis

    参考地址: redis教程:http://www.runoob.com/redis/redis-tutorial.html redis百度百科:https://baike.baidu.com/item ...

  9. 转:C#清除回收站

    SHEmptyRecycleBin是一个内核API方法,该方法能够清空回收站中的文件,该方法在C#中需要手动的引入方法所在的类库.该方法在C#中的声明语法如下: [DllImportAttrbute( ...

  10. brctl 命令详解

    安装网桥管理工具包:bridge-utile ```# yum install bridge-utils -y``` ```使用brctl命令创建网桥br1```# brctl addbr br1`` ...