【一起学UniGUI】--UniGUI的部署选项(5)

article/2025/9/24 9:03:20

uniGUI支持Windows平台下所有主要部署选项。 

1.Standalone Server (独立服务器) 

        最简单的部署方法是独立服务器。在这种模式下,应用程序服务器像桌面应用程序一样直接运行。它也是用于调试应用程序的模式。运行应用程序可执行文件后(它是一个EXE文件),它将最小化到托盘图标,并运行到用户手动终止为止。见下图:

         一个独立的应用程序可以从浏览器访问,地址栏只需键入:http://localhost:8077
        其中8077是应用程序绑定到的专用端口号(侦听端口)。可以在服务模块(ServerModule)中轻松地修改它。

        独立模式只建议用于调试目的。因为它是作为桌面应用程序运行的,所以当当前用户注销时,它就会被终止。而且,它不会在重启后自动启动。模式最适合用于开发时调试。当您的应用程序在调试模式下运行时,您可以设置断点、暂停、转到光标位置,并使用Delphi IDE的所有其他高级调试功能来调试您的应用程序,就像调试任何其他VCL应用程序一样。不建议在正式使用环境中使用此模式,因为它不会在OS重新启动时自动运行。此外,它可以很容易受未经授权的用户干预而被终止。
        简单的讲,其主要步骤为:
1)、在部署的服务器上安装unigui;
2)、直接运行exe 即可;

2. Windows 服务

        另一种部署方法是Windows 服务。通过创建uniGUI Windows服务应用程序,可以将应用程序部署为标准的Windows服务应用程序。这种方法是正式使用环境的首选方法之一。每次系统重启时,Windows服务都会自动运行。它将保证Web应用程序的可用性。Windows服务应用程序可以像上面描述的独立服务器一样从浏览器访问,这意味着每个Windows服务应用程序都需要一个专用端口(未使用的专用端口)。

3. ISAPI 模块

       最后一个可用的部署选项是ISAPI模式。该技术最初是由Microsoft公司采用基于Windows DLL技术应用到Microsoft IIS产品中的。当然,还有其他web服务器,如Apache,也支持加载ISAPI模式。ISAPI模式在许多方面与前面讨论的选项不同。最重要的是,它不包含内置的Web服务器,而不是独立的服务和Windows服务。在ISAPI模式下,IIS服务器是HTTP服务器,ISAPI模块执行它的请求。您可以使用Delphi IDE中的uniGUI向导轻松创建ISAPI模式应用程序。编译后,uniGUI应用程序将输出DLL文件而不是EXE文件。这个DLL文件必须部署到IIS服务器(详细描述在Web部署部分的ISAPI模式中)。uniGUI 应用程序所生成的DLL文件支持从IIS 5.1开始的所有IIS版本。ISAPI模式为开发人员提供了在同一服务器上部署许多模块的自由,而不需要为每个应用程序选择不同的端口。它还继承了Microsoft IIS中所有高级安全特性的优点。

PS:IIS的安全脆弱性曾长时间被业内诟病,一旦IIS出现远程执行漏洞威胁将会非常严重。远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞。 成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任意代码,可以导致IIS服务器所在机器蓝屏或读取其内存中的机密数据。详情请自行百度!

运行ISAPI应用程序就像在浏览器中打开以下URL一样简单,访问格式: http://localhost/appdir/app.dll 

如果你有多个应用程序在同一个文件夹下,你可以调用他们只需指定一个不同的DLL名称:

 http://localhost/appdir/app.dll
 http://localhost/appdir/app2.dll
 http://localhost/appdir/appaccount.dll
       简单的讲,其主要步骤为:
1)、在部署的服务器上安装unigui (也可以省略这一步,直接拷贝以下两个文件即可)
2)、将安装目录下(例如:\Program Files (x86)\FMSoft\Framework\uniGUI\)中的两个文件夹复制到要部署的根目录中,例如:(ext-7.2.0)和(uni-1.90.0.1530)【注意UnGUI版本】
3)、在 UniServerModule模块事件中 UniGUIServerModuleBeforeInit 初始化

procedure TUniServerModule.UniGUIServerModuleBeforeInit(Sender: TObject);
begin{$ifndef UNIGUI_VCL}Self.ExtRoot:='ext-7.2.0';Self.UniRoot:='uni-1.90.0.1530';{$endif}
end;

http://chatgpt.dhexx.cn/article/ybYdx9fL.shtml

相关文章

用unigui来制作网站

主要是uni控件的布局应用、css样式的使用,以及组装一些js插件,去除unigui的加载动画,等控件的默认效果。 直接从SqlServer数据库中读取栏目、内容和网页参数信息。 头部和尾部使用框架形式,直接继承基类页面后,修改中间…

uni-UI

<view class"delet" click"delets">删除</view>.delet {border: 1px solid #e3e3e3;padding: 4rpx 18rpx;font-size: 26rpx;border-radius: 10rpx;}<button class"btn" click"payfor" type"primary">确认…

FMSoft uniGUI Professional 1.90.0.1564 Crack

uniGUI Web 应用程序框架将 Web 应用程序开发体验扩展到一个新的维度。uniGUI使Delphi开发人员能够使用一组独特的可视化组件在 IDE 中创建、设计和调试 Web 应用程序。每个组件都旨在提供与 Delphi VCL 中对应的可视化组件相同的功能。这提供了一个非常舒适的开发环境&#xf…

uniGUI发布时运行时包的处理

运行时包说明 根据uniGUI的开发文档说明&#xff0c;uniGUI发布时是需要安装uniGUI运行时包的。 uniGUI Runtime Package是将uniGUI运行时文件分发到托管uniGUI Web应用程序的服务器的简便方法。可从FMSoft客户门户网站下载运行时软件包。该软件包不适用于uniGUI Trial Editi…

uniGUI之事项合集

目录 1.事件中的代码在服务器端和客户端&#xff0c;哪一端执行&#xff1f; 2.为什么UniGUI控件在IE中显示的字体会变小、模糊&#xff1f; 3.在浏览器端不能使用ShowMessage() 4.unigui程序只显示loading 5.uniGUI执行程序部署有3种形式 6.在UniGUI里使用ADO的设置 7.MainMod…

【一起学UniGUI】--UniGUI介绍(1)

【前言】&#xff1a;Delphi目前已不是主流开发工具&#xff0c;这是事实&#xff01;但不能抹杀它曾经的辉煌。其实不管是哪个语言或哪个开发工具&#xff0c;其实它们仅仅是一个开发工具而已。再好的语言或开发工具&#xff0c;最终仍是要看使用者撑握的水平。相对于大部分来…

UniGUI 后台管理系统框架

TOC](UniGUI 管理系统框架) UniGUI 确实是D的网站开发利器&#xff0c;熟悉D的同学很快就能上手&#xff0c; 除了界面美化需要一部分css外。 已经实现的功能&#xff1a; 免密登录 平台和供应商多组织架构 表格导出到Excel PDF报表内嵌图片 邮件任务通知 格式图表

Delphi B/S WEB 应用开发ExtJS组件《uniGUI中文手册》第3版(一):uniGUI简介

uniGUI是Embarcadero Delphi和C Builder的Web应用程序框架。uniGUI具有用于开发有状态Web应用程序&#xff08;即SPA&#xff09;的全套可视控件。开发过程与开发常规VCL应用程序非常相似。uniGUI Web应用程序可以直接在RAD Studio Delphi IDE中运行和调试&#xff0c;这使开发…

如何找项目写到简历中

对于每一个求职者&#xff0c;简历是每个人找工作的第一步&#xff0c;要想有很多的面试机会&#xff0c;必须将我们的简历制作的“漂亮”一些&#xff0c;我这说的漂亮并不是花里胡哨的简历&#xff0c;而是项目经验这块必须丰富一点&#xff0c;这块是简历中的核心&#xff0…

java简历包装项目经验,项目实战

目录 部分内容展示 深入浅出索引&#xff08;上&#xff09; 索引的常见模型InnoDB 的索引模型索引维护小结 深入浅出索引&#xff08;下&#xff09; 覆盖索引最左前缀原则索引下推 为什么这些SQL语句逻辑相同&#xff0c;性能却差异巨大&#xff1f; 案例一&#xff1a;条…

哪些项目适合写进Java程序员面试简历?推荐这10类

临近毕业&#xff0c;有很多小伙伴会问&#xff0c;我要去面试了&#xff0c;但目前没有做过什么项目&#xff0c;有没有推荐的项目&#xff1f;今天小编给大家推荐几个适合写在简历里的项目。 如果你是没有做过项目的小白&#xff0c;那么建议你去跟着项目视频学习&#xff0…

java简历项目经验描述,分分钟搞定!

我整理的spring学习笔记&#xff1a; 像spring这种知识点我们不能盲目的学习&#xff0c;首先我们得有一套学习路线&#xff0c;我总结了一套spring的学习思维导图&#xff0c;今天通过我整理的Spring学习路线.xmind给大家分析spring需要掌握的一些核心知识点。 spring的特点&…

java项目介绍项目收获_java项目收获总结

2017年java项目收获总结 作为培训,项目的好坏对培训质量的影响十分大,常常是决定性的作用。下面是YJBYS小编整理的java项目收获总结范文&#xff0c;希望对你有帮助! 2017年java项目收获总结一 从二十几天前的项目需求分析&#xff0c;到数据库设计&#xff0c;到后来的界面设计…

java程序员简历项目经验_程序员简历中的项目经验怎么写

程序员简历项目经验范文一 项目&#xff1a;河北省风电监控系统 时间&#xff1a;2014—2015 开发环境&#xff1a;windowseclipsetomcatoracle 框架&#xff1a;springspringmvchibernate 插件&#xff1a;jquery&#xff0c;raphael,highcharts,validate, 个人主要工作内容&a…

java工程师简历项目经验

开头 在找工作的过程中,对于 Redis 技术知识的掌握已经成为必须的技能。美团面试常常就会被问到Redis相关知识,而这次我就差点倒在了美团3面,面试官连问我以下几个Redis的问题,然后就卡壳了… redis了解吗?你说说怎么用redis实现分布式锁? Redis常用数据结构及底层数据结…

可以写在简历上的22个轻松上手的Java经典项目教程(含源码and笔记)

前言 很多朋友投简历的时候会尴尬的发现自己并没有独立写过什么拿得出手的项目&#xff0c;有些朋友甚至压根还没有写过项目。呐&#xff0c;众所周知&#xff0c;程序员的项目经历是非常重要的评判标准。 所以本篇文章给大家总结了22个完整的开源项目&#xff0c;包括教程、…

【Java项目推荐】值得写到简历上的项目--黑马点评

优惠卷秒杀 前言优惠券秒杀实现优惠券秒杀下单超卖问题一人一单分布式锁redis中加锁的一些特殊情况手动实现分布式锁分布式锁误删情况1分布式锁误删情况2lua脚本解决多条命令的原子性问题Redisson 秒杀优化异步秒杀思路基于redis完成秒杀资格判断基于阻塞队列实现异步下单总结 …

万字长文了解免疫算法原理 及求解复杂约束问题(源码实现)

免疫算法理论 生物免疫系统是-一个复杂的自适应系统。免疫系统能够识别出病原体&#xff0c;具有学习、记忆和模式识别能力,因此可以借鉴其信息处理机制来解决科学和工程问题。免疫算法正是基于生物免疫系统识别外部病原体并产生抗体对抗病原体的学习机制而提出的&#xff0c;由…

智能算法之免疫算法求解TSP问题

Immunity Algorithm免疫算法 前言&#xff1a;本文主要围绕解决TSP旅行商问题展开&#xff0c;对于机器人的路线规划以及非线性方程求解的问题等解决方案大家可以直接参考github源码地址&#xff0c; 对于一些其他智能算法例如遗传算法解决一些现实问题都有实现&#xff01;&am…

免疫优化算法Python实现

免疫算法 免疫算法是模仿生物免疫机制&#xff0c;结合基因的进化机理&#xff0c;人工构造出的一种新型智能优化算法。 它具有一般免疫系统的特征&#xff0c;采用群体搜索策略&#xff0c;通过迭代计算&#xff0c;最终以较大的概率得到问题的最优解。 相比较于其他算法&am…