自定义 HttpHandler 在 IIS 7 中不工作,但在 IIS 5 中工作

发布于 2024-10-06 10:06:41 字数 2422 浏览 6 评论 0原文

我正在我的应用程序中使用自定义 IHttpHandler。它在 IIS 5 中运行良好。但现在我们要迁移到 IIS 7,因此我们购买了 2008 R2 服务器。这里不起作用。请帮助。您可以通过[电子邮件受保护]与我联系。提前致谢。 这是我的自定义处理程序代码:

公共类 WebRequestHandler :IHttpHandler,IRequiresSessionState
{
私有无效 ProcessDataRequest(HttpContext 上下文)
{
控制器控制器=新控制器();
控制器.ProcessDataRequest(上下文);
}

区域 IHttpHandler 成员


公共 bool IsReusable
{
得到{返回真; }
}


公共无效ProcessRequest(HttpContext上下文)
{
var 段 = context.Request.Url.Segments;
var request=segments[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内容:配置>
应用程序设置>
添加 key="ChartHttpHandler" value="Storage=memory;Timeout=180;Url=~/temp/;"/>
连接字符串>>
系统.web>
简介>
属性>
添加 name="searchSettings" defaultValue="" type="System.String"/>
/属性>
/简介>
sessionState超时=“2”>
/会话状态>
编译 debug="true" targetFramework="4.0">
组件>
添加程序集=“System.Windows.Forms,版本= 4.0.0.0,文化=中性,
PublicKeyToken=B77A5C561934E089”/>
身份验证模式=“Windows”/>

httpHandlers>
添加 verb="GET,POST" path="*.lst" type="App_Code.WebRequestHandler"/>
/httpHandlers>
页面 controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
系统.webServer>
验证 validateIntegratedModeConfiguration="false"/>
处理程序>
添加 name="WebRequests" verb="" path=".lst" module="IsapiModule"
scriptProcessor="%path%\aspnet_isapi.dll" ype="App_Code.WebRequestHandler"/ > /处理程序>
/system.webServer>
system.serviceModel>
行为>
服务行为>
/服务行为>
/行为>
服务>
/服务>
/system.serviceModel>
/配置>

I am working using custom IHttpHandler in my application. It is working fine in IIS 5. But now we are migrating to IIS 7 so we bought 2008 R2 server. Here it is not working. Kindly Help. you can reach me in [email protected]. Thanks in advance.
This is my Custom Handler Code :

public class WebRequestHandler : IHttpHandler, IRequiresSessionState
{
private void ProcessDataRequest(HttpContext context)
{
Controller controller = new Controller();
controller.ProcessDataRequest(context);
}

region IHttpHandler Members

public bool IsReusable
{
get { return true; }
}

public void ProcessRequest(HttpContext context)
{
var segments = context.Request.Url.Segments;
var request = segments[segments.Length - 1];

context.Response.Expires = -1;

switch (request)
{
case "data.lst":
this.ProcessDataRequest(context);
return;
}
}

endregion

}

And i am calling like this.

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");

But the ProcessRequest(HttpContext context) method is not called in IIS 7 after publishing.

Kindly Reply to this post. Thanks in advance.
This is my web.config content: configuration>
appSettings>
add key="ChartHttpHandler" value="Storage=memory;Timeout=180;Url=~/temp/;"/>
connectionStrings/>
system.web>
profile>
properties>
add name="searchSettings" defaultValue="" type="System.String"/>
/properties>
/profile>
sessionState timeout="2">
/sessionState>
compilation debug="true" targetFramework="4.0">
assemblies>
add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=B77A5C561934E089"/>

authentication mode="Windows"/>

httpHandlers>
add verb="GET,POST" path="*.lst" type="App_Code.WebRequestHandler"/>
/httpHandlers>
pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
system.webServer>
validation validateIntegratedModeConfiguration="false"/>
handlers>
add name="WebRequests" verb="" path=".lst" modules="IsapiModule"
scriptProcessor="%path%\aspnet_isapi.dll" ype="App_Code.WebRequestHandler"/>
/handlers>
/system.webServer>
system.serviceModel>
behaviors>
serviceBehaviors>
/serviceBehaviors>
/behaviors>
services>
/services>
/system.serviceModel>
/configuration>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自由如风 2024-10-13 10:06:41

查看相关问题HttpHandler notworking in IIS 7

要恢复,请使用; <处理程序> 相反...

Check out the related question HttpHandler not working in IIS 7

To resume, use the <system.webServer> <handlers> instead...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文