关于利用VS2008创建项目遇到的小困惑备忘
生活随笔
收集整理的這篇文章主要介紹了
关于利用VS2008创建项目遇到的小困惑备忘
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本來是想學習下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 應用程序”即可。
轉載于:https://www.cnblogs.com/scy251147/archive/2011/11/08/2241822.html
總結
以上是生活随笔為你收集整理的关于利用VS2008创建项目遇到的小困惑备忘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北师大听讲座-张建华-走近Russia
- 下一篇: 练习题(二)