url重写生成静态页的问题

linhl 2010-01-20 11:23:05
网站用url重写的方式生成静态页,一直都是正常的,但最近网站换了台服务器就出问题了(程序都是从旧服务器直接拷过去的)。表现为:以http://www.xxxx.com/访问首页时生成首页静态页default.htm出错,而其它页面生成正常,并且以http://www.xxxx.com/default.htm访问首页时生成静态页成功。


在HttpModule中判断请求的url,如果是http://www.xxxx.com/则重定向到/default.htm页面,如果页面不存在则用/default.aspx页生成静态文件。
生成静态页的代码:
FileStream fs = new FileStream("/default.htm", FileMode.OpenOrCreate);
StreamWriter writer = new StreamWriter(fs, System.Text.Encoding.UTF8);
try
{
context.Server.Execute("/default.aspx", writer);

}
catch
{

}
finally
{
writer.Close();
fs.Close();
}


调试时在context.Server.Execute("/default.aspx", writer);抛出异常"未将对象引用到实例"
...全文
144 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
jtaocs 2010-01-25
  • 打赏
  • 举报
回复
顶下
linhl 2010-01-25
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 yingyuebingya 的回复:]
以http://www.xxxx.com/访问首页时生成首页静态页default.htm出错,而其它页面生成正常,并且以http://www.xxxx.com/default.htm访问首页时生成静态页成功。

会不会是默认首页设置的问题?
在config里改下试试看
<defaultDocument>
<files>
<clear/>
<add value="Default.html"/>
</files>
</defaultDocument>
[/Quote]

默认页设置没问题,而且和在旧服务器上的设置是一样的
linhl 2010-01-25
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 wangshiwei1105 的回复:]
调试时在context.Server.Execute("/default.aspx", writer);抛出异常"未将对象引用到实例"

看看哪个对象是null
[/Quote]

看过了,没发现为null的对象
yingyuebingya 2010-01-22
  • 打赏
  • 举报
回复
以http://www.xxxx.com/访问首页时生成首页静态页default.htm出错,而其它页面生成正常,并且以http://www.xxxx.com/default.htm访问首页时生成静态页成功。

会不会是默认首页设置的问题?
在config里改下试试看
<defaultDocument>
<files>
<clear/>
<add value="Default.html"/>
</files>
</defaultDocument>
天地英豪 2010-01-22
  • 打赏
  • 举报
回复
调试时在context.Server.Execute("/default.aspx", writer);抛出异常"未将对象引用到实例"

看看哪个对象是null
linhl 2010-01-21
  • 打赏
  • 举报
回复
再顶起来
zhouing00 2010-01-20
  • 打赏
  • 举报
回复
估计是iis的配置有问题,建议检查iis
linhl 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuyq11 的回复:]
IIS环境配置问题。
检查StreamWriter writer = new StreamWriter(fs, System.Text.Encoding.UTF8);
文件夹配置是否正确
[/Quote]

具体是哪项配置?

只有用http://www.xxxx.com/这种方式请求页面时才出错,其它页面或者在url上加上页面名称时都是正常的
linhl 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sp1234 的回复:]
调试一下(LOG记录一下)fs是不是null啊。
[/Quote]
调试过了,fs不为null



[Quote=引用 4 楼 mngzilin 的回复:]
新换的服务器上没有配置iis

网站---右键---属性---配置----添加----

可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
拓展名添上.aspx
动作限制  GET,POST
检查文件是否存在--不要勾选

最后在可执行文件上点击一下,以激活确定按钮----确定


[/Quote]

已经添加了过了,没用
liubucai 2010-01-20
  • 打赏
  • 举报
回复
sadfsadfsafsadsafssdsad
linhl 2010-01-20
  • 打赏
  • 举报
回复
晕,没看到前面几位的回答,还以为没人气呢
linhl 2010-01-20
  • 打赏
  • 举报
回复
怎么没人啊
linhl 2010-01-20
  • 打赏
  • 举报
回复
顶起~
wuyq11 2010-01-20
  • 打赏
  • 举报
回复
IIS环境配置问题。
检查StreamWriter writer = new StreamWriter(fs, System.Text.Encoding.UTF8);
文件夹配置是否正确
mngzilin 2010-01-20
  • 打赏
  • 举报
回复
新换的服务器上没有配置iis

网站---右键---属性---配置----添加----

可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
拓展名添上.aspx
动作限制 GET,POST
检查文件是否存在--不要勾选

最后在可执行文件上点击一下,以激活确定按钮----确定

mxc1225 2010-01-20
  • 打赏
  • 举报
回复
正在学习url重写静态页!
呵呵!帮顶!
  • 打赏
  • 举报
回复
调试一下(LOG记录一下)fs是不是null啊。
平生我自如 2010-01-20
  • 打赏
  • 举报
回复
没人回答 !帮顶

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧