不用IIS直接执行aspx文件中遇到的问题
2004-12-02 21:12
721 查看
[C#]不用IIS直接执行aspx文件中遇到的问题
在自己的ActionServlet.DLL[C#]中尝试用ApplicationHost直接执行aspx文件,而不用IIS。
结果耗费了两个小时在一个小问题上,痛心疾首啊!
我的代码如下:
private static HostRequest m_Host;
。。。
m_Host = (HostRequest)ApplicationHost.CreateApplicationHost(
typeof(HostRequest),
"/foo",
Directory.GetCurrentDirectory( ));
// Directory.GetCurrentDirectory( )用来获取当前运行目录
然后在本目录下放置一个aspx文件。
然而,蹊跷的事情来了。
我在一个UsingAspRuntime工程目录下运行测试程序,可以正常创建这个ApplicationHost。
在其他目录下,却无法创建!一到这里就发生异常System.IO.FileNotFoundException,其错误内容为:
“File or assembly name ActionServlet, or one of its dependencies, was not found.”
(“找不到文件或程序集名称“ActionServlet”,或找不到它的一个依赖项”)
没有搞清楚原理之前,我真的被这个错误描述搞晕了,一心想看出UsingAspRuntime工程目录到底有什么不同寻常之处,难道是权限?难道和Cache有关?难道和machine.config有关?
终于,在google新闻组上翻阅上百篇文献后,看到了这句话:
“You have to create a bin directory as subdirectory to your current directory and move a copy of ConsoleHost.exe to it. Now you have two copies of ConsoleHost.exe, one in the current directory (in my case f:/temp/test/) and another in /bin (in my case f:/temp/test/bin) directory. ”
真是醍醐灌顶。
原来就是,你试图创建的那个物理路径下,必须有一个子文件夹bin,其中放置你的运行所依赖的那些组件!
我把ActionServlet.dll放进去,就一切正常了!
哎,如果早知道了CreateApplicationHost背后的原理,我岂不是能走弯路两个小时?!
参考文档:
http://www.csharphelp.com/archives/archive248.html
《Processing A .aspx File From Console Window, Without Using IIS
By Jamsheer E B》
相关文章推荐
- C#对称加密与非对称加密实例
- C#添加、读取Word脚注尾注的方法
- 谁来关心我们这些程序员
- 用Ole Automation实现Delphi和AutoCad之间的数据交换
- c#接简单数据库操作类
- Hibernate Tool & Files
- 一个非常不错的业务规则管理器
- B/S结构系统
- 一个画图类,类似ms_chart的线图,适用于科学仿真数据分析(二)
- 一个画图类,类似ms_chart的线图,适用于科学仿真数据分析(一)
- 学ASP.NET学什么?
- Ant应用(1)
- Ant应用(2)
- 使用C#开发COM+组件
- 初步研究方向 web services and VR
- 使用FSO把文本信息导入数据库
- Thinking in C++ 卷2中文版
- 让IIS启动成功!
- 开始Java之路......
- 网络安全系列之四十九 IIS6.0权限设置