我寫了一個簡單的處理程序:ASP.NET處理程序未在IIS7上運行
public class ImageHandler : IHttpHandler, IRequiresSessionState
{
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
byte[] imgData = context.Session["Data"] as byte[];
if (imgData != null)
{
context.Response.CacheControl = "no-cache";
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
context.Response.ContentType = "image/png";
context.Response.BinaryWrite(imgData);
context.Response.Flush();
}
}
}
並設置web.config
:
<system.web>
<httpHandlers>
<add verb="GET" path="image.png" type="TestWeb.Handlers.ImageHandler, TestWeb" />
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<add name="Image" verb="GET" path="image.png" type="TestWeb.Handlers.ImageHandler, TestWeb" />
</handlers>
</system.webServer>
- 如果我運行代碼允許VS啓動新的IIS服務並打開一個新選項卡它到達處理程序的斷點。
- 如果我設置
don't open a page. Wait for request from an external application
,永遠不會到達處理程序。
這不僅僅是斷點,當我運行在IIS上配置的網站時,處理程序中沒有代碼執行。只有從VS開始它纔有效。
配置IIS7時我錯過了什麼?
如果您在下添加,則可以在兩個位置都有配置。 –
curtisk
2011-02-23 18:30:32