首 页 | 新 闻 | 技术中心 | 第二书店 | 《程序员》 | 《开发高手》 | 社 区 | 黄 页 | 人 才
移 动专 题SUNIBM微 软微 创精 华Donews人 邮
我的技术中心 
我的分类 我的文档
全部文章 发表文章
专栏管理 使用说明



 RSS 订阅 
最新文档列表
Windows/.NET
.NET  (rss)    
Visual C++  (rss)    
Delphi  (rss)    
Visual Basic  (rss)    
ASP  (rss)    
JavaScript  (rss)    
Java/Linux
Java  (rss)    
Perl  (rss)    
综合
其他开发语言  (rss)    
文件格式  (rss)    
企业开发
游戏开发  (rss)    
网站制作技术  (rss)    
数据库
数据库开发  (rss)    
软件工程
其他  (rss)    

积极原创作者 
Purpleendurer (137)
nizhigang2000 (13)
btbtd (85)
wfdmd (27)
iiprogram (88)
yjz0065 (121)
lzmtw (31)
feng_sundy (165)
whoopee (60)
WapWeb (12)
CSDN - 文档中心 - .NET 阅读:1222   评论: 0    参与评论
标题   用程序来代替IIS打开ASP.NET FOR C#     选择自 epoluodi 的 Blog
关键字   C# IIS ASP.NET
出处  

这是一个用程序来直接执行ASP.NET页面,一般我们是用IE打开的,现在我们用.NET中提供的功能来打开一个ASP.NET文件.执行后产生HTML代码。

我用一个控制台程序!在开始必须引用System.Web.dll这个名称空间,

代码:

using System;   
using System.Web;                          //Web引用

using System.Web.Hosting;   

//System.Web.Hosting命名空间提供在 Microsoft Internet 信息服务 (IIS) 之外的托管应用程序中承载 ASP.NET 应用程序的功能。


首先创建一个HOST类,用于处理Web请求

public class MyExeHost : MarshalByRefObject   //继承MarshalByRefObject  类
{
 public void ProcessRequest(String page)          //处理ASP.NET页面的请求
 {
  Console.WriteLine("---------HTML CODE-----------");
  HttpRuntime.ProcessRequest(new SimpleWorkerRequest(page, null, Console.Out));  

  }
}

 /*ProcessRequest方法的参数是一个HttpWorkerRequest类的实例,但是在Web名称空间下的HttpWorkerRequest是必须被继承的一个类,但是在System.Web.Hosting名称空间下有个实现了HttpWorkerRequest的类,叫SimpleWorkerRequest,SimpleWorkerRequest类的构造函数有2个,我选择了第一个。*/


public class App                  //控制台程序
{
 public static void Main(string[] args)   
 {
         string DocPath;                        //存放一个ASP.NET页面的路径
   
         MyExeHost Host;                    //声明MyExeHost 类的一个变量
  
          Host = (MyExeHost)ApplicationHost.CreateApplicationHost(typeof(MyExeHost),
          "/host",Environment.CurrentDirectory);
         /*ApplicationHost是System.Web.Hosting名称空间下的一个类,使得能够在Internet 信息服务 (IIS) 应用程序之外承载 ASP.NET 页。此类使宿主能够创建用于处理 ASP.NET 请求的应用程序域。CreateApplicationHost方法是:创建并配置用于承载 ASP.NET 的应用程序域。第一个参数是:创建一个用于请求ASP.NET的类也就是我们在之前创建的MyExeHost 类,第二个参数是:应用程序域的虚拟目录;例如/myapp,一般这个路径就代表引用程序的目录,第三个参数的意思是:应用程序域的物理目录,这个非常重要!设置不对就运行不起来,这个就是本应用程序的物理路径,在这个程序对ASP.NET处理时会调用这个路径下的 bin目录,里面的Web应用程序,也就是我们的 本程序 */
         DocPath = Console.ReadLine();           //读取你输入的一个ASP.Net页面,页面如果在本应用程序路径里就直接打文件名,否则打出全路径。
         Host.ProcessRequest(DocPath);           //将页面传给ProcessRequest  处理 
  
         Console.ReadLine(); 
 }
}
     运行后显示执行ASP.NET页面后产生的HTML,你可以在加上IO下入文件用IE打开(哈哈,我就不写了)

注意的是:生成后在应用程序下必须在创建一个BIN目录,里面将本应用程序考到BIN目录下!在去运行生成的程序,一定要保证所运行的程序下有个BIN目录里面有本程序。

WINXP + SP1  +  VS2003.NET 编译通过!

有不对的请指点


相关文章
对该文的评论