zoukankan      html  css  js  c++  java
  • ASP.NET程序也能像WinForm程序一样运行[转载]

    由于现在会使用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

     

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

    点击此处下载安装程序

     
     
     
  • 相关阅读:
    Codeforces Round #649 (Div. 2) D. Ehab's Last Corollary
    Educational Codeforces Round 89 (Rated for Div. 2) E. Two Arrays
    Educational Codeforces Round 89 (Rated for Div. 2) D. Two Divisors
    Codeforces Round #647 (Div. 2) E. Johnny and Grandmaster
    Codeforces Round #647 (Div. 2) F. Johnny and Megan's Necklace
    Codeforces Round #648 (Div. 2) G. Secure Password
    Codeforces Round #646 (Div. 2) F. Rotating Substrings
    C++STL常见用法
    各类学习慕课(不定期更新
    高阶等差数列
  • 原文地址:https://www.cnblogs.com/hfzsjz/p/3195961.html
Copyright © 2011-2022 走看看