视频学asp.net的博客模块问题
发表在ASP.NET图书答疑 2010-05-17
是否精华
版块置顶:
老师,您好!
       我购买了视频学asp.net这本书。把光盘的源代码中的博客模块配置好之后,能够打开首页,能够进入普通登录和管理员登录。但注册时总是显示时间格式不对,(但明明时间的格式是自动生成的,怎么会不对?),这是怎么回事,如何解决?
另外,点击首页的任何一下链接,都会显示:(
无法找到资源。 
说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。 

请求的 URL: /blog1/168.aspx

)UrlRewriter.dll文件已经下了,其中blog1是IIS下的虚拟目录,怎么会这样?
 
另外,留言部分,如果留言内容不加编辑则可以留言成功,如果一编辑(如点居中)就不行了,显示( 
从客户端(FreeTextBox1="<P align=center>asdf...")中检测到有潜在危险的 Request.Form 值。 
说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。 

异常详细信息: System.Web.HttpRequestValidationException: 从客户端(FreeTextBox1="<P align=center>asdf...")中检测到有潜在危险的 Request.Form 值。
)请问这是怎么回事?如何解决?
    谢谢啦!麻烦你们!
分享到:
精彩评论 6
红尘倒影
学分:0 LV1
2010-05-18
沙发
1、在数据库中建立一个存储时间的字段,然后再注册的时候通过代码获取当前时间插入到字段中。
2、查看首页的链接是相对路径还是绝对路径或者UrlRewriter.dll组件没有注册,请自行搜索一下插件的注册方法。
3、web.config中validateRequest=false。
大伟_mrkj
学分:0 LV1
2010-05-18
板凳
读者朋友你好!
首先非常感谢你购买我们的新书《视频学ASP.NET》!
就像红尘倒影老师说的,先把这个程序的UrlRewriter.dll和freetextbox.dll两个重要的组件下载下来!
如果这个程序中的注册出错,时间格式,那你可尝试着自己更改下,多多动手操作,多动动脑筋,这样你的ASP。NET才会提高。
你把以上所说的两个组件下载后,再好好运行下程序,如果还有问题向我们互相探讨!
大伟_mrkj
学分:0 LV1
2010-05-18
地板
你好!
整理了一下你提的问题,最主要的就是在IIS中运行这个博客网站时,由于应用了UrlRewriter的URL重写功能导致出现了: HTTP 404错误(您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
请求的 URL: /blog1/168.aspx)
首先来了解下:iis的工作流程应该是遇到.aspx扩展名,交给.net处理,然后才能调用httpModules进行url映射
URL: /blog1/168.aspx
iis直接把168当成文件夹,返回404错误了
而vs2008里的调试web服务器把所有的请求都发给了.net处理,所以成功(VS2008中运行成功但IIS中报404错误).
尝试的解决办法:
IIS的ISAPI映射添加.aspx的扩展名,不然ASP.NET不会处理.aspx。
IIS应用程序扩展名映射步骤如下:
1.选择要添加应用程序扩展名映射的站点,右键选择“属性”
2.选择“主目录”
注意:这里在“执行权限”一项中一定要选择“纯脚本”,当然也可以选择“脚本和执行文件”,但这样很不安全。一句话,就是必须要包含“脚本”,不然会报403错误。
3.点击旁边的“配置”
添加或者编辑就由你随意操作了
扩展名:.aspx
可执行路径:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
动作:默认就可以,或者选“全部”
再例如,伪静态重写,扩展名为.html等
重写规则:
<add name="RewritePhoto" virtualUrl="^~/(\d+).html" 
  rewriteUrlParameter="ExcludeFromClientQueryString" 
  destinationUrl="~/Default.aspx?ID=$1" 
  ignoreCase="true" /> 
IIS配置:网站->属性->目录->配置(G)...->映射->应用程序扩展->添加
可执行文件:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
扩展名:.html
动作:限制为 GET,HEAD,POST,DEBUG
脚本引擎:选中
确认文件是否存在:不选
运行结果:
大伟_mrkj
学分:0 LV1
2010-05-18
4L
在尝试从iis里的主目录里的配置里修改isapi来实现用文件夹对iis的解析的时候,要注意 通配符应用程序映射 的设置,
输入 c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll 

关于 通配符应用程序映射 的资料

安装通配符应用程序映射
在 IIS 6.0 中,管理员可以在每次开始对网站或虚拟目录发送请求时,将该网站或虚拟目录配置为运行 Internet 服务器 API (ISAPI),而不管所请求文件的扩展名。

当 IIS Web 服务器接受到来自客户端的请求时,Web 服务器会查看在请求中命名的文件扩展名,以确定有哪一个 ISAPI 或公共网关接口 (CGI) 应用程序来处理该文件。例如,如果请求名为 Default.asp 的网页时,IIS 可以从应用程序映射列表中知道 Default.asp 由 Asp.dll ISAPI 应用程序处理。

如果想在所请求的页面发送到映射的应用程序前对每次客户端请求执行特定的任务,可以编写一个 ISAPI 筛选器在请求到达时将其截获。但是,ISAPI 筛选器具有以下限制:

它们不能访问请求主体,而只访问头。 
它们只能在每个站点配置,而不能在每个虚拟目录配置。 
它们不应包含长期运行的操作,因为 ISAPI 筛选器是同步进行的。 
它们的灵活性较小,因为 ISAPI 筛选器 API 的功能比 ISAPI 扩展 API 少,后者用于编写 ISAPI 应用程序。 
它们在时间上难以管理。 
它们是事件驱动的。 



通过使用通配符应用程序映射,您可以在所请求的页面发送到其映射应用程序之前截获每个请求。其效果就像拥有处理每个文件名扩展的应用程序映射。这就是使用“通配符”来命名这一功能的原因。使用通配符应用程序映射的应用程序只能是 ISAPI 应用程序。
大伟_mrkj
学分:0 LV1
2010-05-18
5L

IIS6.0下 (windows 2003下不用配置都是好使用的)
如果选用Asp.net级别,并希望使用HTML扩展名的话,需要设置通配符: 

IIS配置:网站->属性->主目录->配置(G)...->映射->通配符应用程序映射->插入 可执行文件:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll 

确认文件是否存在:不选 

IIS7.0下 (windows 7等操作系统 IIS7.0下我也在正研究当中...还没有弄明白)
无需配置,web.config的配置将会自动起作用。 

<system.webServer>
<handlers>
<add name="we7.*" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
</handlers> 

</system.webServer>
梦想天涯
学分:0 LV1
TA的每日心情
开心
2023-07-19 10:49:51
2010-05-20
6L
谢谢!
首页上一页 1 下一页尾页 6 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照