ASP.NET也像WinForm程序一样运行的实现方法
我平时就喜欢写些小工具,还好,我会WinForm,所以这个问题还好解决。但有时我要把一些小的网站作品给别人使用时,同样会遇到这种问题。终于我做了一个很方便的小工具,彻底地解决了ASP.NET网站不能像WINFORM那样运行的难题。今天,我给大家演示一下这个小工具(它非常小,还不到300K),我相信你会喜欢它的。
记住哦,我的工具的名字叫:FishAspnetLoader
操作方式
工具好不好用,操作的易用性很关键,来看看我的工具是如何启动一个网站的。
在Windows资源管理器中,找到您要启动的网站所在目录,右击鼠标,如下图:
此时只要点击【用FishAspnetLoader加载此目录为网站】即可。
是的,我没说错,这样就可以了,任何目录都可以,也不需要您把什么什么文件拷贝到什么地方,【只要右击鼠标,点一下菜单就行了】。
网站的运行效果如下:
您说现在是不是一个WinForm程序在运行?
你说什么,没有对话框?那你再来看:
现在像个WinForm程序了吧。
支持的ASP.NET程序类别
前面也说过,设计这个小工具是为了解决ASP.NET程序运行受限制的问题。这个工具可以支持WebForm, MVC二种ASP.NET框架。包括我的WEB框架也支持哦。
所以,理论上,只要是一个ASP.NET程序,应该都是可以运行的,程序会自动识别,也不需要做任何设置。还是那句话:【只要右击鼠标,点一下菜单就行了】。
而且ASP.NET的版本也不是问题,从.net 2.0 到 .net 4.0 全线支持。
它也是个HTTP服务器
刚才我说到我的工具可以支持在任何文件夹上右击并加载为网站。是的,我没瞎说,就算那个目录不是个ASP.NET程序目录,是一个普通的文件目录,或者是一个静态网页的目录,都是可以的,此时就和IIS的行为一样了,如果请求的是静态页面,就显示静态页面,遇到目录时,就列目录。而且此时的运行速度会比ASP.NET程序更快哦。原因很简单:此时不加载ASP.NET运行时环境。
来张列目录的效果图:
还有一点要补充:与WebDev.WebServer.exe不同,只要是Windows能支持的文件名或者目录名,我的工具就能支持,与IIS的行为完全一致。
很遗憾,我好久没做那种纯静态页面的网站了,就不截图展示了。我想你懂的。
支持远程机器访问
看到上一张截图,您有没有一种想法:以后如果有人找我要文件,我就让他们去下载呀,这样比共享目录还安全呢。
哈哈,如果您有这种想法,那我要恭喜您了,您的安全觉悟还不错。是的,我的工具支持这个功能:可以让远程机器浏览【做为网站加载的目录】(并不是任何目录)。
为了安全,程序默认是不允许远程机器连接的,需要您来手工打开。操作也简单,如下图:
用文字描述就是:右击系统托盘图标,点击【设置安全参数】菜单。此时将出现以下对话框:
这个对话框很简单,我想您懂的,此处略过78个字.....
不受限于Windows防火墙
刚才说到可以让远程机器访问,这里有个问题:从WindowsXP开始,操作系统就集成了防火墙的功能,而且打开这个功能的机器还真不少。如果真是这样,前面所说的功能就要遇到问题了:可能会被防火墙阻拦!哦,这个工具太不完美了,人家什么什么工具怎么就没被防火墙拦住呢?幸好,我的工具不受这个问题的困扰,它能自动把它添加到Windows防火墙的例外列表中,完全不打扰您的操作。
Windows 7 的防火墙也能支持哦:
尊重每个人的操作习惯
我比较注重操作体验,我的工具对于这个理念也有很好的支持,从启动网站的那一刻起就开始了。
当您将一个目录加载为网站时,将会出现以下对话框,问您要选择什么样的浏览器来浏览网站:
注意了,下面还有一个小勾勾,有时也很方便哦。
即使您当时选择了一个浏览器,后面想更换浏览器,也很简单。看下图:
用文字描述就是:右击系统托盘图标,点击【选择浏览器】菜单。此时将出现以下对话框:
仍然可以让您选择其它的浏览器。我装了5种浏览器,你装了几种呢?
内置多标签浏览器支持
我的这个小工具,它内置一个多标签的浏览器(IE内核),哪怕您的机器上只安装了IE6,仍然可以享受多标签的功能。而且切换有二种方式哦:
注意:点击窗口右上角的关闭按钮,程序并没有完全退出。要退出程序请右击拖盘图标,并点击【退出】菜单。
而且对于在内置浏览器的工作模式时,还可以右击任务栏,直接退出程序。如下图(好像不支持Win7):
启动参数及配置文件
我的这个小工具,为了能提供一些人性化的支持,可以在启动时设置一些启动参数。此时需要从Windows开始菜单中启动它,此时的启动界面如下:
注意哦:当您设置好相关的启动参数后,可以将它保存起来,对话框上面有个【另存为】按钮,此时程序将会把这些参数保存为一个siteconfig文件。
一个siteconfig文件可以保存一个网站在启动时FishAspnetLoader所需的配置参数。
为了方便操作,您可以将经常浏览的网站或目录的配置参数保存到一个siteconfig文件中。
当您在资源管理器的文件夹上右击菜单或从命令行传递一个目录时,
FishAspnetLoader会在安装目录中查找是否存在关于这个目录的配置,
如果没有,则继续查找目标目录下有没有相关的配置文件,
如果没有,还会查找【我的文档】目录有没有相关的配置文件。
如果发现有相关的配置文件,则读取那个配置文件。
当您从“开始菜单”中启动FishAspnetLoader时,程序会显示“设置启动参数”对话框。
如果您只是固定的浏览一个目录或本机网站,则可以将当前设置保存为一个名为:default.siteconfig的文件。
或者,如果是将网站“当成工具”来发布,也可以事先准备好这个文件。那么以后将不会出现这个对话框。
当您从“资源管理器”的右键菜单或命令行传递一个目录路径时,且在没有找到有关这个目录的配置时,
FishAspnetLoader会查看那个目录下是否存在web.config ,如果存在这个文件,则加载Asp.net Runtime,否则不加载,以加快启动速度。
如果这种判断方式对于某个目录不适用时,请从“开始菜单”中启动FishAspnetLoader,并为这个目录创建一个siteconfig文件以指定合适的参数。
启动配置文件,是为了让您能更好定制程序运行行为而设计的,我特别提供一些参数,可以让网站在内置的浏览器更好地伪装成普通桌面程序。
不仅如此,工具还支持命令行的启动方式,可以接收一个siteconfig文件,您只要写个批处理并在做安装包时运行批处理就好了。
或者参考我的另一个工具的安装包的快捷方式做法。那个工具的启动命令行更简单。
也可以参考这个演示程序的配置文件。
总之:还是为了让您方便地使用这个工具。
支持 .NET 4.0
说明:运行本程序仅需要 .net Frarmework 2.0
但是,如果您要运行的网站是基于ASP.NET 3.5的,那么您需要安装 .net 3.5,要运行 .net 4.0的网站,要安装 .net 4.0
如果您的机器上已经安装了 .net framework 4.0 ,而且希望启用 .net 4 的支持。
只需要将安装目录下的文件【FishAspnetLoader.exe.config.bak】改名成【FishAspnetLoader.exe.config】即可。
部署问题
在本文结尾,我提供这个工具的安装包,安装包中还包含了一些其它的文件。提供安装包只是为了让您更方便地使用我的工具而已。
如果您有一个网站,且希望由我的工具来启动并以桌面程序的方式来运行,那么只需要在安装后,把FishAspnetLoader.exe这一个程序拿出来就行了,你可以把FishAspnetLoader.exe放在您的安装包中,并提供一个siteconfig文件,然后以命令行的方式启动我的工具就行了。具体做法请参考我的博客:
通用数据访问层及Ajax服务端框架的综合示例,展示与下载
发一款数据库的辅助工具:My-SqlViewer
上述软件打包下载
原文: cnblogs.com fish-li
相关文章
- 本篇文章是对C#中WinForm控件之Dock顺序调整进行了详细的分析介绍,需要的朋友参考下...2020-06-25
- 这篇文章主要介绍了C# Winform中实现主窗口打开登录窗口关闭的方法,这在需要用户名密码的软件项目中是必用的一个技巧,要的朋友可以参考下...2020-06-25
- 下面小编就为大家带来一篇C# winform打开Excel文档的方法总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 这篇文章主要给大家介绍C# winform快捷键设置技巧,涉及到C winform快捷键相关知识,对C winform知识感兴趣的朋友可以参考下本篇文章...2020-06-25
c#中Winform实现多线程异步更新UI(进度及状态信息)
本篇文章主要介绍了c#中Winform实现多线程异步更新UI(进度及状态信息) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25- 这篇文章主要给大家介绍了关于c# winform异步不卡界面的实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用c#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-25
C# WinForm程序处理后台繁忙导致前台控件假死现象解决方法
这篇文章主要介绍了C# WinForm程序处理后台繁忙导致前台控件假死现象解决方法,本文通过Application.DoEvents()解决这个问题,并讲解了Application.DoEvents()的作用,需要的朋友可以参考下...2020-06-25- 这篇文章主要介绍了C#中winform使用相对路径读取文件的方法,实例分析了C#使用相对路径读取文件的技巧与实际应用,需要的朋友可以参考下...2020-06-25
winform中的ListBox和ComboBox绑定数据用法实例
这篇文章主要介绍了winform中的ListBox和ComboBox绑定数据用法,实例分析了将集合数据绑定到ListBox和ComboBox控件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25- 这篇文章主要介绍了C#在Winform开发中使用Grid++报表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 这篇文章主要为大家详细介绍了C# WinForm程序设计简单计算器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法
这篇文章主要介绍了C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法,结合实例形式分析了WinForm图片重叠后造成图片不透明的原因与相应的解决方法,需要的朋友可以参考下...2020-06-25- 在工作中遇到这样一个问题,在系统使用过程中,输入法会变灰导致无法使用输入法输入文字,就好像输入法被禁用了没有启用似的。对此,在这里做个备录...2020-06-25
- 这篇文章主要介绍了C#实现Winform中打开网页页面的方法,涉及WinForm中WebBrowser的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
C#实现winform中RichTextBox在指定光标位置插入图片的方法
这篇文章主要介绍了C#实现winform中RichTextBox在指定光标位置插入图片的方法,涉及RichTextBox控件及剪切板的相关操作技巧,非常简单实用,需要的朋友可以参考下...2020-06-25C# Winform 调用系统接口操作 INI 配置文件的代码
封装了一小段代码, 调用系统接口, 操作配置文件. 一般用于 .ini 文件, 或者其它键值对格式的配置文件...2020-06-25- 这篇文章主要介绍了WinForm调用百度地图接口用法,结合具体实例形式简单分析了WinForm WebBrower控件与前端百度接口交互的相关操作技巧,需要的朋友可以参考下...2020-06-25
- 在.NET应用中,导出Excel是很常见的需求,导出Excel报表大致有以下三种方式:Office PIA,文件流和NPOI开源库,本文只介绍前两种方式...2020-06-25
- 这篇文章主要介绍了C# WinForm中禁止改变窗口大小的方法,需要把FormBorderStyle和MaximizeBox的值固定即可,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C# inForm编程获取文件物理路径的方法,获取的物理路径是软件即软件安装所在目录,需要的朋友可以参考下...2020-06-25