Pregunta

¿Hay alguna forma de que un controlador Http pase una solicitud al respaldo de la tubería a IIS 6 y le permita manejar la solicitud?

Por ejemplo, si tengo un controlador Http configurado para verbo = " (comodín) " ruta = " (comodín) .txt "

Tengo un archivo llamado myunformated.txt, me gustaría que IIS 6 lo envíe al usuario si no tiene parámetros de cadena de consulta adjuntos.

¿Alguna idea?

¿Fue útil?

Solución

La respuesta a su pregunta es no. Eso es lo que logra la canalización integrada de IIS7 pero no está disponible en IIS6.

En este caso específico, usar context.Response.TransmitFile hará el truco, aunque debería considerar configurar el tipo de contenido de Respuesta, el juego de caracteres y los encabezados de control de caché, algo así como: -

HttpResponse Response = context.Response

Response.ContentType = "text/plain";
Response.CharSet = "Windows-1252";
Response.AddFileDependency(filePath);

// Set additional properties to enable caching.
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);
Response.TransmitFile(filePath);

Esto prácticamente duplica lo que estaría haciendo el controlador de contenido estático de IIS.

Otros consejos

¿Por qué no solo: Response.TransmitFile? - tenga en cuenta que, a diferencia de Response.WriteFile, este no cargará todo el archivo.

Es posible que desee evitarlo por completo y que el enlace apunte a un nombre de archivo diferente. De esta forma, obtienes todo lo que querías de IIS, particularmente reanudar la descarga.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top