随笔 - 394  文章 - 0  评论 - 946  阅读 - 143万 

本来是想学习下IHttpAsyncHandler接口的,然后就打开VS2008,快速点击“文件”-->“新建”-->"网站",然后新建一个CometSQL的网站,再在网站下面新建三个类:ProcessAsyncHandler.cs、ProcessAsyncResult.cs、ProcesssMessageHandler.cs,这三个类分别继承自IHttpAsyncHandler、IAsyncResult以及IHttpHandler。本来搞到这儿貌似一切没问题,可是下面调试的时候,麻烦来了,我在ProcessAsyncHandler类中敲入以下代码:

复制代码
 public class ProcessAsyncHandler : IHttpAsyncHandler
{
public static List<ProcessAsyncResult> Queue;

static ProcessAsyncHandler()
{
Queue = new List<ProcessAsyncResult>();
}

#region IHttpAsyncHandler 成员

public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
{
var sessionID = context.Request["sessionId"];
if (Queue.Find(q => q.SessionId == sessionID) != null)
{
var index = Queue.IndexOf(Queue.Find(q => q.SessionId == sessionID));
Queue[index].Context = context;
Queue[index].Callback = cb;
return Queue[index];
}

var asyncResult = new ProcessAsyncResult(context, cb, sessionID);
Queue.Add(asyncResult);
return asyncResult;
}

public void EndProcessRequest(IAsyncResult result)
{
var rslt = (ProcessAsyncResult)result;
rslt.Context.Response.Write(rslt.Message);
rslt.Message = string.Empty;
}

#endregion

#region IHttpHandler 成员

public bool IsReusable
{
get { return true; }
}

public void ProcessRequest(HttpContext context)
{
throw new NotImplementedException();
}

#endregion
}
复制代码

没想到在我的界面显示如下:
 

但是我按F5运行的时候,程序仍然能够运行,只是不能击中断点。

如果说这还需要在web.config中配置的话,那么我利用如下节点来配置:

<add verb="GET,POST" path="ProcessMessageHandler.cs" type="MyComet.MyMessageHandler,MyComet" validate="false"/>

 始终不正确,一直提示找不到文件。这就怪了......................

其实,发生这种事情的原因,就是因为这三个类没有在同一个程序集下面,解决的方法很简单,就是创建项目的时候,选择“文件”-->“新建”-->"项目",在弹出的对话框中选择“Asp.net web 应用程序”即可。

posted on   程序诗人  阅读(472)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示