当前位置:  开发笔记 > 编程语言 > 正文

如何使用C#以编程方式运行ASP.Net开发服务器?

如何解决《如何使用C#以编程方式运行ASP.Net开发服务器?》经验,为你挑选了2个好方法。

我有ASP.NET网页,我想为其构建自动化测试(使用WatiN和MBUnit).如何从我的代码启动ASP.Net开发服务器?我不想使用IIS.



1> Ray Vega..:

这就是我用过的方法:

using System;
using System.Diagnostics;
using System.Web;
...

// settings
string PortNumber = "1162"; // arbitrary unused port #
string LocalHostUrl = string.Format("http://localhost:{0}", PortNumber);
string PhysicalPath = Environment.CurrentDirectory //  the path of compiled web app
string VirtualPath = "";
string RootUrl = LocalHostUrl + VirtualPath;                 

// create a new process to start the ASP.NET Development Server
Process process = new Process();

/// configure the web server
process.StartInfo.FileName = HttpRuntime.ClrInstallDirectory + "WebDev.WebServer.exe";
process.StartInfo.Arguments = string.Format("/port:{0} /path:\"{1}\" /virtual:\"{2}\"", PortNumber, PhysicalPath, VirtualPath);
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;

// start the web server
process.Start();

// rest of code...


对于.NET 4,WebDev.WebServer40.exe位于程序文件(或程序文件(x86))\ Microsoft Shared\DevServer\10.0中.您可以使用Environment.Is64BitOperatingSystem来帮助确定要查找的文件夹.顺便说一句,您可以使用Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles)或Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFilesX86)获取文件夹.

2> Dillie-O..:

据我所知,您可以使用以下路径/语法从命令提示符启动dev服务器:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\Webdev.WebServer.exe /port:[PORT NUMBER] /path: [PATH TO ROOT]

...所以我可以想象你可以轻松地使用Process.Start()通过一些代码启动你需要的细节.

当然,您需要将该版本号调整为最近/期望的任何值.


如果webdev.webserver.exe不在该文件夹中,则它可能位于C:\ Program Files\Common Files\Microsoft Shared\DevServer\9.0(我在那里找到它)
对于2013年,这里是http://stackoverflow.com/questions/4772092/starting-and-stopping-iis-express-programmatically
推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有