我写了一个简单的处理程序:
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>
don't open a page. Wait for request from an external application
,永远不会到达处理程序。当我运行在IIS上配置的网站时,不仅仅是断点,处理程序中没有代码执行。只有从VS开始才有效。
配置IIS7时我错过了什么?
答案 0 :(得分:2)
我不得不将应用程序池切换到Integrated
模式,它使用的是经典。
我必须从<system.web>
删除处理程序配置,因为它给了我error 500.23
。
HTTP错误500.23 - 内部服务器 错误已设置ASP.NET设置 检测到不适用于 集成管理管道模式。
答案 1 :(得分:0)
您需要附加到asp.net工作进程。转到工具/附加进程并选择w3p进程。