由于现在会使用WinForm的人是越来越少了,可能有时候做点小东西就只好用ASP.NET去完成了(喜欢控制台的朋友请不要顶针),如果是这样,悲剧就发生了:一个小工具(或者小的演示项目),发给朋友去用,总不至于让人家也装个IIS或者VS20XX吧?如果没有这二样,这种小工具还真不方便运行。怎么办? 做过ASP.NET开发的人都知道:网站通常要布署到IIS上才能直接运行,当然也不排除你用VS打开项目并使用VS自带的WebDev.WebServer.exe来启动程序。这种方式难免有不方便的时候。

我平时就喜欢写些小工具,还好,我会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

说明:工具可免费使用,没有版权限制。

点击此处下载安装程序

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
如果,您希望更容易地发现我的新博客,不妨点击一下右下角的关注 Fish Li
因为,我的写作热情也离不开您的肯定支持。

感谢您的阅读,如果您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是Fish Li 。

 
 
 

ASP.NET程序也能像WinForm程序一样运行[转载]的更多相关文章

  1. 一个简单的winform程序调用webservices

    本文原创,如需转载,请标明源地址,谢谢合作!http://blog.csdn.net/sue_1989/article/details/6597078 本文的编写IDE为VSTS2008和.NET F ...

  2. C# winform安装部署(转载)

    c# winform 程序打包部署 核心总结: 1.建议在完成的要打包的项目外,另建解决方案建立安装部署项目(而不是在同一个解决方案内新建),在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目 ...

  3. 黄聪:C#Winform程序如何发布并自动升级(图解)

    有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布关于打包的大家可以看我的文章C# winform程序怎么打包成安装项目(图解)其实打包是打包,发 ...

  4. 【转】C#Winform程序如何发布并自动升级(图解)

    有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布关于打包的大家可以看我的文章C# winform程序怎么打包成安装项目(图解)其实打包是打包,发 ...

  5. C#Winform程序如何发布并自动升级(图解)

    C#Winform程序如何发布并自动升级(图解)     有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布 关于打包的大家可以看我的文章C# w ...

  6. WinForm程序中两份mdf文件问题的解决

    在项目中用程序中嵌入mdf文件的方式来进行SQLServer数据库开发非常方便,用来发布开源项目等很方便,点击就可以运行,免部署,特别是在教学中用起来更加方便,老师不用先将数据库文件detach再发给 ...

  7. C#之VS2010ASP.NET页面调用Web Service和winform程序调用Web Service

    一:用ASP.NET调用Web Service 打开VS2010,打开“文件-新建-网站”,选择“ASP.NET网站” 选好存储位置,语言后点击确定,进入默认页面.然后先添加Web引用,把WebSer ...

  8. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  9. C# Winform程序如何使用ClickOnce发布并自动升级(图解)

    有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布关于打包的大家可以看我的文章C# winform程序怎么打包成安装项目(图解)其实打包是打包,发 ...

随机推荐

  1. Android开发(七)——判断网络状态

    项目中难免会出现使用网络的情况,使用网络前得进行网络判断,看网上的网友一般有多种实现版本. 第一种: // 是否有网络连接 public static boolean isNetworkConnect ...

  2. 基于jQuery功能非常强大的图片裁剪插件

    今天我们要来介绍一款基于jQuery功能非常强大的图片裁剪插件,这款jQuery图片裁剪插件可以选择裁剪框的尺寸比例,可以设置高宽尺寸,同时可以设置图片翻转角度,当然也支持图片的缩放,裁剪框也可以用鼠 ...

  3. Android 底部按钮BottomNavigationView + Fragment 的使用(二)

    这里来试验BottomNavigationView + Fragment 底部按钮通过点击底部选项,实现中间的Fragment进行页面的切换. 使用BottomNavigationView 控件,实现 ...

  4. [转]详解Oracle高级分组函数(ROLLUP, CUBE, GROUPING SETS)

    原文地址:http://blog.csdn.net/u014558001/article/details/42387929 本文主要讲解 ROLLUP, CUBE, GROUPING SETS的主要用 ...

  5. 解决Eclipse异常关闭后重启报 org.eclipse.swt.SWTException: Invalid thread access 的问题

    . . . . . 很久没有写博客了,最近实在是太忙,一直想写点干货,但是一直没静下心来学习. 今天又在加班忙碌之中,结果谁知道越忙碌越出问题.先是 weblogic 没有正常启动,凭经验第一反应就是 ...

  6. MyEclipse10中配置开发Python所需要的PyDev 绝对靠谱 不忽悠!

    在NLP(自然语言处理)这个领域中,Python具有良好的声誉,于是也想学习一下.首先第一步就是需要在计算机上配置Python环境.由于Python自带的编辑器太简单,使用起来不顺手,于是就考虑在相对 ...

  7. 宇宙最强spacemacs

    这个标题背后的潜台词其实是:逼格是什么炼成的? 此处省略一万字. Emacs就不多说了,神之编辑器,但其快捷键实在是....Evil.好啦,现在来了Spacemacs,结合Vim与Emacs二者的优点 ...

  8. Android——浅谈HTTP中Get与Post的区别(转)

    原文地址:http://network.51cto.com/art/201407/446434.htm Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DEL ...

  9. 高并发TCP连接数目问题

    linux可通过五元组唯一确定一个链接:源IP,源端口,目的IP,目的端口,传输层协议.而一个端口不允许被两个及以上进程占用(一个进程可同时占用多个端口),据此是否可以推测一台linux服务器最多可以 ...

  10. hive表增量抽取到oracle数据库的通用程序(一)

    hive表增量抽取到oracle数据库的通用程序(二) sqoop在export的时候 只能通过--export-dir参数来指定hdfs的路径.而目前的需求是需要将hive中某个表中的多个分区记录一 ...