如何在没有IIS的环境中运行Web程序和Web Service[原创]

作者:lhxhappy   
原文链接:http://www.cnblogs.com/lhxhappy/archive/2008/08/04/1259503.html

转载请注明出处。

最近开发了一个网络版的程序,程序的UI是WinForm的,数据交互全部采用Web Service 报表采用 Web Form 嵌入到WinForm 中,

这种构架的程序必须得有IIS服务器支持,否则整个程序都无法运行,老总最近突然发奇想,说是要我们封装个单机版的程序出来拿去推广

封装到是简单,可是多数单机客户都不会安装IIS,即使安装了,也基本不会配置啊~!程序离开了IIS又运行不了,这可怎么是好呢??

   今天在编译Web程序的时候突然受到了启发,Vs2005 以后的版本编写Web程序的时候,可以在没有IIS的环境中编译和调试,每次调试

的时候都会运行起一个 Asp.net Development Server 的服务,这个服务和IIS类似,可以说是IIS的简化版,虽然不如IIS完善和成熟但是

用于提供一般的IIS服务已经足够了,但是必须要按照了Vs2005或者vs2008的计算机才能使用Asp.net Development Server 来提供IIS服

务,不过呢不用担心,只要拷贝几个关键的文件,在没有安装开发环境的计算机上同样也是可以运行Asp.net Development Server 。

 

废话不多说了下面让我们来看看怎么样,把Asp.net Development Server 的服务启动起来

第一种方式

通过命令提示行:

1、开始--运行--输入 CMD 回车

2、在命令提示行中 输入 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\WebDev.WebServer /port:38438 /path:"F:\Work\inetpub\wwwroot\lhx" /vpath:"/lhx"

参数说明:/port: 指定Asp.net Development Server 提供服务的端口号 ,范围在1-65535之间任意一个未使用的端口。

              /path:存放Web程序的物理路径

              /vpath:虚拟路径 (可选)默认路径就是"/"

3、打开IE浏览器通过URL:http://localhost:38438/lhx就可访问到你的网站了~!(怎么样方便吧?)

 

第二种方式:

通过WinForm(C#)来启动这个服务

实现方法如下

private void RunServer()

{

                Process P = new Process();

                p.StartInfo.FileName = "cmd.exe";           //设定程序名

                p.StartInfo.Arguments = "/c" + "C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\WebDev.WebServer /port:38438 /path:\"F:\\Work\\inetpub\\wwwroot\\lhx\" /vpath:\"/lhx\"";    //设定程序行执行参数
                p.StartInfo.UseShellExecute = false;        //关闭Shell的使用
                p.StartInfo.RedirectStandardInput = true;   //重定向标准输入
                p.StartInfo.RedirectStandardOutput = true;  //重定向标准输出

                p.StartInfo.RedirectStandardError = true;   //重定向错误输出

                p.StartInfo.CreateNoWindow = true;          //设置不显示窗口

                p.Start();  

}

 

另外再没有安装VS2005或者Vs2008的计算机上怎么才能使用Asp.net Development Server 呢?

1、从安装了Vs2005或者Vs2008开发环境的计算机上拷贝WebDev.WebServer .exe文件

Vs2005的路径是C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\WebDev.WebServer .exe

VS2008的WebDev.WebServer .exe在C:\Program Files\Common Files\Microsoft Shared\DevServer\9.0\WebDev.WebServer .exe

 

2、光拷贝WebDev.WebServer .exe在没有开发环境的计算机上还不能成功运行Asp.net Development Server,还差一个叫做WebDev.WebHost.dll的文件

Vs2005的环境中这个文件保存在C:\Windows\assembly\GAC_32\WebDev.WebHost\8.0.0.0__b03f5f7f11d50a3a路径下

Vs2008的环境中这个文件保存在C:\Windows\assembly\GAC_32\WebDev.WebHost\9.0.0.0__b03f5f7f11d50a3a路径下

我们先要从有开发环境的计算机中把这个文件拷贝出来,然后再把这个文件拷贝到没有开发环境的计算机的相同的路径下Asp.net Development Server 就可以

用上面的方法正常启动了。

要想拷贝WebDev.WebHost.dll必须在命令提示行中用Dos命令进行

步骤如下:

首先:开始--运行--输入 CMD 调出命令提示行

然后:在命令提示行中执行Dos命令 copy C:\Windows\assembly\GAC_32\WebDev.WebHost\8.0.0.0__b03f5f7f11d50a3a\WebDev.WebHost.dll C:\

这样WebDev.WebHost.dll 文件就被复制到了C盘根目录下了。

最后:将WebDev.WebServer .exe和WebDev.WebHost.dll文件拷贝到没有安装开发环境的计算机中,然后建立一个文本文件,将下面的内容复制到文本文件中保存,

md %SystemRoot%\assembly\GAC_32\WebDev.WebHost\8.0.0.0__b03f5f7f11d50a3a
xcopy WebDev.WebHost.dll /y %SystemRoot%\assembly\GAC_32\WebDev.WebHost\8.0.0.0__b03f5f7f11d50a3a

 

将刚才文本文件的文件名改为copy.bat,然后将copy.bat拷贝到保存WebDev.WebHost.dll的文件夹中,然后运行 copy.bat文件。

 

OK,现在允许WebDev.WebServer .exe发现服务已经可以正常启动了~!

 

简单吧??作为轻量级的IIS Asp.net Development Server  可是很不错的哦~!

 

posted on 2008-08-04 00:13  lhx  阅读(2964)  评论(6编辑  收藏  举报