如何使用asp.net development server代替IIS
个人不太喜欢计算机里面启动太多服务。而做ASP.NET的开发又需要装IIS,于是常常不停地启动w3svc,iisadmin等服务,相当的麻烦。
于是考虑完全不装IIS,使用VS2005自带的asp.net development server来代替IIS。
asp.net development server的进程名称是:WebDev.WebServer.EXE,搜索一下这个文件,保存在:%systemroot%"Microsoft.NET"Framework"v2.0.50727"WebDev.WebServer.EXE。
在命令行下执行:WebDev.WebServer.EXE/?可以看见关于此命令的帮助,非常简单,就三个参数:
/port:端口
/path:"物理路径"
/vpath:"虚拟路径"
需要临时开一个WEB站点的时候,在开始>运行中输入以下命令:%systemroot%"Microsoft.NET"Framework"v2.0.50727"WebDev.WebServer.EXE /port:80 /path:"c:"mysite" /vpath:"/"
来个P处理:
@echo off
color 27
mode con cols=60 lines=10
title 运行网站
:ks
tasklist | find /i "WebDev.WebServer.EXE">process.txt
for /f "tokens=1" %%i in (process.txt) do (
if "%%i"=="" goto run
if "%%i"=="WebDev.WebServer.EXE" taskkill /f /im "%%i"
)
del process.txt /q
cls
echo 运行此程序时,请确认你已经安装.Net Framework2.0!
echo 已经安装IIS的,请确认你的IIS已经停止工作!
set /p dk=请输入网站的运行端口[默认为80]:
:slj
set /p lj=请输入网站的物理路径:
if "%lj%"=="" (
goto ljwk)else (
goto vlj
)
:ljwk
cls
echo 你没有输入网站路径,请重新输入!
goto slj
:vlj
set /p vlj=请输入网站的虚拟路径[可选]:
goto run
:run
start "运行网站" /min /b %windir%/Microsoft.NET/Framework/v2.0.50727/WebDev.WebServer.EXE /port:%dk% /path:"%lj%" /vpath:"/%vlj%"
cls
echo 网站已经开始运行,正在打开
if "%dk%"=="" start /max http://localhost/%vlj%
if not "%dk%"=="" start /max http://localhost:%dk%/%vlj%
:esc
set /p option=退出请输入q,重新运行请输入r:
if "%option%"=="q" goto end
if "%option%"=="r" goto ks
if not "%option%"=="q" goto err
:err
set /p option=你输入的不是q,请重新输入q:
goto esc
:end
taskkill /f /im "WebDev.WebServer.EXE"
cls
taskkill /f /im "cmd.exe"
另类一点这个需要修改注册表,用记事本新建一个文件,输入以下字符,并保存为reg格式
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Folder/shell/VS2005 WebServer]
@="ASP.NET 2.0 Web Server Here"
[HKEY_LOCAL_MACHINE/SOFTWARE/Classes/Folder/shell/VS2005 WebServer/command]
@="C://Windows//Microsoft.NET//Framework//v2.0.50727//Webdev.WebServer.exe /port:8099 /path:/"%1/""
不过这样做有一些不好的地方,一个是端口不能自己定义,另外一个是只能使用一个端口,等等一些小问题,但个人觉得这个是非常方便的,不用每次自己都去IIS里设一个,烦的说。呵呵。