如何在没有IIS的环境中运行Web程序和Web Service[原创]
作者:lhxhappy原文链接:http://www.iyunv.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可是很不错的哦~!
页:
[1]