dud*_*er4 6 asp.net iis-6 httphandler
我已经创建了一个示例项目来简化我的问题.我有这个简单的处理程序:
public class HandleThis : IHttpHandler, IRequiresSessionState
{
public void ProcessRequest( System.Web.HttpContext context )
{
// Score.aspx just says "success"
context.Response.Redirect( "Score.aspx" );
}
public bool IsReusable { get { return true; } }
}
Run Code Online (Sandbox Code Playgroud)
然后,在我的配置中,我有这个:
<httpHandlers>
<add verb="*"
path="Survey"
type="HttpHandlerTest.HandleThis, HttpHandlerTest" />
Run Code Online (Sandbox Code Playgroud)
现在,当我点击http:// server/Survey我的处理程序触发时.
如果我将项目更改为使用IIS 6运行,则不会触发(404).我尝试通过以下方式在IIS中手动添加处理程序: - 网站属性 - 主目录 - 配置 - 添加(浏览到我的网站的.dll),扩展:调查,取消选中"验证文件是否存在"
我注意到IIS(如此有用)添加了"." 在我的扩展面前,所以我用"b.Survey"点击了网站; 仍然是404.
当然可以在IIS 6中添加处理程序吗?
小智 6
"我尝试通过以下方式在IIS中手动添加处理程序: - 网站属性 - 主目录 - 配置 - 添加(浏览到我的网站的.dll),扩展:调查,取消选中验证文件是否存在"
听起来你正在使用错误的"可执行"路径.可执行路径应指向aspnet isapi dll,而不是包含HttpHandler实现的dll.
尝试使用.aspx扩展名映射到的相同路径(通常是:c:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll).
| 归档时间: |
|
| 查看次数: |
3853 次 |
| 最近记录: |