【发布时间】:2011-05-22 01:08:20
【问题描述】:
我正在我的应用程序中使用自定义 IHttpHandler。它在 IIS 5 中运行良好。但现在我们正在迁移到 IIS 7,所以我们购买了 2008 R2 服务器。在这里它不起作用。请帮助。您可以通过 maheswaran@lucidindia.com 与我联系。提前致谢。 这是我的自定义处理程序代码:
公共类 WebRequestHandler : IHttpHandler, IRequiresSessionState
{
私有 void ProcessDataRequest(HttpContext 上下文)
{
控制器控制器 = 新控制器();
控制器.ProcessDataRequest(上下文);
}
区域 IHttpHandler 成员
公共布尔 IsReusable
{
得到{返回真; }
}
公共无效 ProcessRequest(HttpContext 上下文)
{
var 段 = context.Request.Url.Segments;
var request = 段[segments.Length - 1];
context.Response.Expires = -1;
切换(请求)
{
案例“data.lst”:
this.ProcessDataRequest(上下文);
返回;
}
}
结束区域
}
我是这样打电话的。
this.client = new WebClient();
this.client.DownloadProgressChanged += this.OnProgressChanged;
this.client.OpenReadCompleted += this.OnDataAvailable;
this.client.OpenReadAsync(new Uri("../data.lst?viewerID=viewer", UriKind.Relative), "GET");
但是发布后不会在 IIS 7 中调用 ProcessRequest(HttpContext context) 方法。
欢迎回复本帖。提前致谢。
这是我的 web.config 内容:配置>
应用设置>
add key="ChartHttpHandler" value="Storage=memory;Timeout=180;Url=~/temp/;"/>
连接字符串/>
系统.web>
简介>
属性>
添加 name="searchSettings" defaultValue="" type="System.String"/>
/属性>
/个人资料>
sessionState timeout="2">
/会话状态>
编译 debug="true" targetFramework="4.0">
组件>
添加程序集="System.Windows.Forms, 版本=4.0.0.0, 文化=中性,
PublicKeyToken=B77A5C561934E089"/>
身份验证模式="Windows"/>
httpHandlers>
添加动词="GET,POST" path="*.lst" type="App_Code.WebRequestHandler"/>
/httpHandlers>
页面 controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
system.webServer>
验证 validateIntegratedModeConfiguration="false"/>
处理程序>
添加 name="WebRequests" 动词="" path=".lst" modules="IsapiModule"
scriptProcessor="%path%\aspnet_isapi.dll" ype="App_Code.WebRequestHandler"/ >
/处理程序>
/system.webServer>
system.serviceModel>
行为>
服务行为>
/服务行为>
/行为>
服务>
/服务>
/system.serviceModel>
/配置>
【问题讨论】:
标签: iis-7 windows-server-2008-r2