Пользовательский HttpHandler не работает в IIS 7, но работает в IIS 5 - PullRequest
0 голосов
/ 08 декабря 2010

Я работаю с использованием собственного IHttpHandler в моем приложении.Он отлично работает в IIS 5. Но теперь мы переходим на IIS 7, поэтому мы купили сервер 2008 R2.Здесь это не работает.Пожалуйста, помогите.Вы можете связаться со мной по адресу maheswaran@lucidindia.com.Заранее спасибо.Это мой собственный код обработчика:

открытый класс WebRequestHandler: IHttpHandler, IRequiresSessionState
{*
private void ProcessDataRequest (контекст HttpContext)
{
Контроллер контроллера = новый контроллер ();
controller.ProcessDataRequest (context);
}

регион IHttpHandler Члены


public bool IsReusable
{
get {return true;}
}


public void ProcessRequest (контекст HttpContext)
{
var сегменты = context.Request.Url.Segments;
var request = сегменты [сегменты. Длина - 1];

context.Response.Expires = -1;

switch (запрос)
{
case "data.lst":
this.ProcessDataRequest (context);
возврат;
}
}

endregion

}


И я звоню вот так.

this.client = new WebClient ();
this.client.DownloadProgressChanged + = this.OnProgressChanged;
this.client.OpenReadCompleted + = this.OnDataAvailable;
this.client.OpenReadAsync (новый Uri ("../ data.lst? ViewerID = viewer", UriKind.Relative), "GET");
Но метод ProcessRequest (контекст HttpContext) не вызывается в IIS 7 после публикации.
Пожалуйста, ответьте на это сообщение.Заранее спасибо.
Это мой контент web.config: конфигурация>
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">
сборки>
добавить сборку = "Система.Windows.Forms, версия = 4.0.0.0, культура = нейтральная,
PublicKeyToken = B77A5C561934E089 "/>
режим аутентификации =" Windows "/>

httpHandlers>
add verb =" GET, POST "path =" *. Lst "type =" App_Code.WebRequestHandler "/>
/ httpHandlers>
pages controlRenderingCompatibilityVersion =" 3.5 "clientIDMode =" AutoID "/>
system.webServer>
validation validateIntegratedModeConfiguration = "false" />
обработчики>
add name = "WebRequests" verb = "" path = ".lst "modules =" IsapiModule "
scriptProcessor ="% path% \ aspnet_isapi.dll "ype =" App_Code.WebRequestHandler "/> / handlers>
/system.webServer>
system.serviceModel>
поведения>
serviceBehaviors>
/ serviceBehaviors>
/ поведение>
службы>
/ службы>
/system.serviceModel>
/ конфигурации>

1 Ответ

0 голосов
/ 09 января 2011

Проверьте связанный вопрос HttpHandler не работает в IIS 7

Чтобы возобновить, используйте <system.webServer> <handlers> вместо ...

...