MicroHelper.Net

雷锋说.对待朋友要MicroHelper,对待敌人要害尔扑
随笔 - 74, 评论 - 431, 引用 - 7

导航

关于

邮件系统不稳定,使用songdming at 263 dot net吧
PageRank

FastCounter by bCentral

 

标签

每月存档

最新留言

  • re: 代码组织
    <a href="http://www.vgoldseller.com/runescape-c-599.html">runescape money</a> ...
    by cxb000(匿名) on 2008/3/26 10:32:11
  • 回复: 看PPMM
    <a target="_new" href="http://www.bestgoldlion.com">http://www.bestgoldlio...
    by runescape gold(匿名) on 2007/12/18 5:13:00
  • 回复: IoC初阶
    <a target="_new" href="http://www.bestgoldlion.com">http://www.bestgoldlio...
    by runescape gold(匿名) on 2007/12/18 5:12:00
  • 回复: 数据分页 (最后更新2003/11/18)
    <a target="_new" href="http://www.sky361.com">http://www.sky361.com</a&...
    by wow power leveling(匿名) on 2007/12/18 5:06:00
  • 回复: iBATIS.Net
    <a target="_new" href="http://www.rsgold-rsgold.com">http://www.rsgold-rsg...
    by runescape money(匿名) on 2007/12/18 5:04:00
  • 回复: 防范Sql注入式攻击
    <a target="_new" href="http://www.rsgold-rsgold.com">http://www.rsgold-rsg...
    by runescape money(匿名) on 2007/12/18 5:03:00
  • 回复: TDD——NUnit的原理
    <a target="_new" href="http://www.rsgold-rsgold.com">http://www.rsgold-rsg...
    by runescape money(匿名) on 2007/12/18 5:03:00
  • 回复: 开源的CMS
    <a target="_new" href="http://www.rsgold-rsgold.com">http://www.rsgold-rsg...
    by runescape money(匿名) on 2007/12/18 5:03:00
  • 回复: CCNet 1.0即将发布
    <a target="_new" href="http://www.sky361.com">http://www.sky361.com</a&...
    by runescape gold(匿名) on 2007/12/18 5:00:00
  • 回复: 关于加班
    为什么这年头加班都成了是我们 的义务了?加班不给加班费也就算了,难得早点回去,还要说三道四的,这社会会为什么会发展成这样啊????
    by 小小(匿名) on 2007/12/14 8:18:00
  • 回复: Presentation草稿:面向对象设计的基本原则
    是的,模式要实事求是,应该是解决问题为主 <br>我搜集了原则方面的文章,有空去看看吧 <br><a target="_new" href="...
    by objecttutor(匿名) on 2007/10/31 17:26:00
  • 回复: 开源的CMS
    支持一下
    by qingxingmeng(匿名) on 2007/10/30 18:03:00
  • 回复: .Net的开源项目
    AnyView(网络警)网络监控软件是一款国内目前最专业的企业级的网络监控软件产品。包含局域网上网监控、邮件监控、聊天监控、BT禁止、流量监视、上下行分离流量限制、并发连接数限制、屏幕监视和录象、硬件...
    by 网络监控软件(匿名) on 2007/10/30 12:33:00
  • 回复: .Net的开源项目
    AnyView(网络警)网络监控软件是一款国内目前最专业的企业级的网络监控软件产品。包含局域网上网监控、邮件监控、聊天监控、BT禁止、流量监视、上下行分离流量限制、并发连接数限制、屏幕监视和录象、硬件...
    by 网络监控软件(匿名) on 2007/10/30 12:32:00
  • 回复: 看PPMM
    好看就成 <br>
    by 11(匿名) on 2007/10/27 15:43:00

广告

 

本想试一下能不能用PageParser.GetCompiledPageInstance方法来获得Asp.Net Page的实例,以便在用NUnit测试时能对Asp.Net页面有更多的控制,却发现了一个有意思的现象。

首先,为了不访问IIS,也能处理Asp.Net的Page,先要构造一个host出来,最简单的方法就是用ApplicationHost对象的CreateApplicationHost方法。
public class MyHost

static public MyHost Create(string virtualDir, string physicalDir)
{
 MyHost host = (MyHost) ApplicationHost.CreateApplicationHost(
    typeof(MyHost), virtualDir, physicalDir);
 host.PhysicalDir  = physicalDir;
 host.VirtualDir = virtualDir;
 return host;
}

CreateApplicationHost有个缺点就是需要将MyHost所在配件copy到web程序的bin目录下面

然后实现一个ProcessRequest方法来处理页面的请求
public void ProcessRequest(string page,TextWriter writer)
{
 HttpRuntime.ProcessRequest(new SimpleWorkerRequest(page, null, writer));
}

获得Page的实例采用Hosting ASP.NET Outside of IIS介绍的方法,不过,作者提供的代码在
if(AspNetNUnitHost.RUNTIME_INITIALIZED)
{
 //This call has the side effect of initializing the HTTP runtime
 HttpRuntime.ProcessRequest(request);
 AspNetNUnitHost.RUNTIME_INITIALIZED = true;
}

处好像有点问题,应该是AspNetNUnitHost.RUNTIME_INITIALIZED==false才执行HttpRuntime.ProcessRequest(request)吧?

而且原来的代码在执行到GetCompiledPageInstance会有Exception抛出,
Object reference not set to an instance of an object
System.Web.UI.Page.get_Server()  at ASP.Test_aspx..ctor() in
c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\testsystemhelper\f4d71d06\\7e3d5470\\i8to6hq0.0.cs:line  0

不管上面这些,debug时发现用自定义的Host执行Asp.Net Page和IIS执行的结果有出入
比如
<asp咧嘴笑脸ropDownList id="cacheList" runat="server" Width="200px"></asp咧嘴笑脸ropDownList>
IIS执行的结果为
<select name="cacheList" id="cacheList" style="width:200px;">
。。。。。。
</select>

而MyHost的结果为
<select name="cacheList" id="cacheList">
。。。。。。
</select>

宽度等信息不见了,看来是否用自定义的Host执行asp.net页面还要再考虑。

打印 | 张贴于 2004-05-12 20:47:00 | Tag:暂无标签

留言反馈

#回复: 不用IIS执行asp.net 页面的问题 编辑
关键是为什么执行的结果不一样?width等信息丢失了
2004-05-13 11:18:00 | [匿名用户:microhelper]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.1.8