标签: ashx

缓存ASHX图像响应

我已经创建了一个ashx文件来动态生成图像缩略图.我想在第一次调用它们后将这些图像缓存在客户端.

网址:

〜/ image.ashx?DIR =用户W = 25 H = 25&力= YES&IMG = matt.jpg

代码背后:

public void ProcessRequest (HttpContext context) {
    TimeSpan refresh = new TimeSpan(0, 15, 0);
    context.Response.Cache.SetExpires(DateTime.Now.Add(refresh));
    context.Response.Cache.SetMaxAge(refresh);
    context.Response.Cache.SetCacheability(HttpCacheability.Server);
    context.Response.CacheControl = HttpCacheability.Public.ToString();
    context.Response.Cache.SetValidUntilExpires(true);

    string dir = context.Request.QueryString["dir"];
    string img = context.Request.QueryString["img"];
    bool force = context.Request.QueryString["force"] == "yes";
    double w = 0;
    double h = 0;
    ...
    context.Response.ContentType = "image/jpeg";
    thumb.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
Run Code Online (Sandbox Code Playgroud)

使用Chrome中的开发工具我可以看到以下响应标头:

HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Mon, 26 Sep 2011 19:17:31 GMT
X-AspNet-Version: 4.0.30319 …
Run Code Online (Sandbox Code Playgroud)

c# caching image-processing ashx asp.net-4.0

4
推荐指数
1
解决办法
5900
查看次数

当我从子门户访问ashx时,为什么DNN会终止我的身份验证cookie?

我看到一个非常奇怪的问题,只有非管理用户才会发生.

当用户登录并访问一个页面时,它们将从系统中注销.页面完成加载,就像他们已登录一样,但一旦他们尝试任何其他操作(包括刷新浏览器页面),他们就会被认为未登录并显示登录提示.

打开fiddler,我可以看到服务器的响应之一包含以下内容:

响应发送了71个字节的Cookie数据:Set-Cookie:portalaliasid =; expires = Sat,08-May-1982 17:26:06 GMT; 路径= /; 仅Http

响应发送69个字节的Cookie数据:Set-Cookie:portalroles =; expires = Sat,08-May-1982 17:26:06 GMT; 路径= /; 仅Http

响应发送69个字节的Cookie数据:Set-Cookie:.DOTNETNUKE =; expires = Tue,12-Oct-1999 04:00:00 GMT; 路径= /; 仅Http

响应发送了27个字节的Cookie数据:Set-Cookie:language =; 路径= /; 仅Http

响应发送33个字节的Cookie数据:Set-Cookie:authentication =; 路径= /; 仅Http

当我访问我的自定义ashx Web调用时,似乎总会发生这种情况.进行此调用的代码是以下javascript:

$('#lstStates').empty();
var selectedRegions = $('select[id*=lbxRegions]').val();

// Get the list of states for the selected regions
$.ajax({
    url: '/DesktopModules/MyModule/ashx/GetStatesForRegions.ashx',
    data: { regions: selectedRegions },
    dataType: 'json',
    success: function (data) {
        if (IsArray(data)) {
            for (var state …
Run Code Online (Sandbox Code Playgroud)

c# cookies dotnetnuke ashx

4
推荐指数
1
解决办法
2045
查看次数

ASHX文件分析器错误 - 无法创建类型

我从我正在测试制作条形码的供应商那里获得了一个安装在IIS上的示例应用程序.

aspx页面工作正常,但是当aspx页面调用ashx页面时,我得到以下错误:

'/ BarcodeSample'应用程序中的服务器错误.

分析程序错误说明:解析为此请求提供服务所需的资源时发生错误.请查看以下特定的解析错误详细信息并相应地修改源文件.

分析器错误消息:无法创建类型"TECIT.OnlineBarcodes.BarcodeHandler".

来源错误:

第1行:<%@ WebHandler语言="C#"CodeBehind ="BarcodeHandler.ashx.cs"Class ="TECIT.OnlineBarcodes.BarcodeHandler"%>

源文件:/BarcodeSample/BarcodeHandler.ashx行:1

-------------------------------------------------- ------------------------------版本信息:Microsoft .NET Framework版本:2.0.50727.3634; ASP.NET版本:2.0.50727.3634

为什么会这样?如何让这个ashx文件起作用?

asp.net iis-6 ashx

4
推荐指数
3
解决办法
1万
查看次数

ASP.NET Handler(ashx)vs MVC Controller Action用于下载文件

我们有一个应用程序,它将webforms用于一些较旧的Web应用程序页面,但也包含一些较新功能的MVC功能.我们对下载必须在服务器上处理的文件有一些新的要求(而不是直接链接到Web服务器上的静态文件).

我没有看到任何迹象表明是否有理由应该使用ASHX处理程序而不仅仅使用MVC控制器并对响应对象进行操作并在action方法结束时返回EmptyResult().

MVC是否有最佳实践?ASHX处理程序是否应该用于WebForms,或者它们是否提供了使用MVC进行此类文件下载功能的一些好处?

asp.net asp.net-mvc ashx

4
推荐指数
2
解决办法
2386
查看次数

你如何用JavaScript调用ASHX?

我想调用ASHX文件并从JavaScript传递一些查询字符串变量,并将返回字符串转换为JavaScript中的字符串.我该怎么做?

ASHX文件已经编码为response.write一个基于查询字符串的字符串.

javascript string return ashx

3
推荐指数
1
解决办法
9182
查看次数

IIS 7.5(Windows 7)中是否缺少默认的ASHX处理程序映射?

我有一个应用程序,它使用默认的ASP.NET HTTP处理程序扩展名.ashx.这在IIS 7.5中不再有效.我收到404.3消息,其中包含添加处理程序的说明.

我专门使用默认的处理程序扩展来保持简单,而不必在我的Web应用程序的安装程序中添加映射.

新版本的IIS似乎有很多来自IIS 6的变化....我错过了什么?

asp.net iis ashx iis-7.5

3
推荐指数
1
解决办法
6032
查看次数

抽象超类中的c#static将在子类之间共享吗?

我正在编写一些连接到模拟服务的ashx处理程序,我希望它们共享模拟服务实例.我最简单的方法是创建一个静态实例

public class AbstractHandler
    {
        static IService _impl;
        public static IService Impl
        {
            get
            {
                if (_impl == null)
                {
                    _impl = new MockService();
                }
                return _impl;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,我想知道这是否会起作用; 从这个类继承的不同处理程序将拥有自己的静态_impl引用或者它们将被共享吗?

c# abstract-class ashx static-members

3
推荐指数
1
解决办法
984
查看次数

ASP.NET下载处理程序在IE中运行但不在Chrome中运行

我有一个下载处理程序,将在IE中下载该文件但在chrome中它会尝试下载自己.我的意思是Chrome意味着Chrome会尝试下载名为downloadhandler.ashx的文件.处理程序的代码是

<%@ WebHandler Language="C#" Class="DownloadHandler" %>
using System;
using System.Web;

public class DownloadHandler : IHttpHandler 
{
public void ProcessRequest(HttpContext context)
{
    string file = "";

    // get the file name from the querystring
    if (context.Request.QueryString["Filepath"] != null)
    {
        file = context.Request.QueryString["Filepath"].ToString();
    }

    string filename = context.Server.MapPath("~/Minutes/" + file);
    System.IO.FileInfo fileInfo = new System.IO.FileInfo(filename);

    try
    {
        if (fileInfo.Exists)
        {
            context.Response.Clear();
            context.Response.AddHeader("Content-Disposition", "inline;attachment; filename=\"" + fileInfo.Name + "\"");
            context.Response.AddHeader("Content-Length", fileInfo.Length.ToString());
            context.Response.ContentType = "application/octet-stream";
            context.Response.TransmitFile(fileInfo.FullName);
            context.Response.Flush();
        }
        else
        {
            throw new Exception("File not …
Run Code Online (Sandbox Code Playgroud)

c# asp.net ashx

3
推荐指数
1
解决办法
4319
查看次数

HTML5 视频 - ashx 处理程序 - 寻求

我正在尝试使用 ashx 处理程序作为 HTML5 视频源。我可以做到这一点,但我无法在已经缓冲的视频上进一步前进。

我可以在使用标准 MP4 源的网络选项卡上看到,向前查找会创建另一个请求,但使用处理程序则不会。

有些视频超过 1 GB。

到目前为止,这是我必须让视频正常工作的内容:

public void ProcessRequest(HttpContext context)
{
    context.Response.Buffer = false;
    context.Response.ContentType = "video/mp4";
    FileInfo file = new FileInfo(path);
    int len = (int)file.Length, bytes;
    context.Response.AppendHeader("content-length", len.ToString());
    byte[] buffer = new byte[1024];
    Stream outStream = context.Response.OutputStream;
    using (Stream stream = File.OpenRead(path))
    {
        while (len > 0 && (bytes = stream.Read(buffer, 0, buffer.Length)) > 0)
        {
            outStream.Write(buffer, 0, bytes);
            len -= bytes;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

摘自 Marck Gravells 的帖子Best way to stream …

html video ashx video-streaming html5-video

3
推荐指数
1
解决办法
3271
查看次数

如何动态编译ashx文件?

我在 ASP.NET Web 项目中有一个 ashx 文件。它有一个 cs 文件背后的代码。cs 文件被编译成项目 dll 并部署到生产环境。我发现没有办法在不部署整个项目 dll 的情况下动态更改 cs 文件。

我一直将 C# 代码放入 aspx(而不是 .cs)文件中,部署后,我可以对单个 aspx 文件进行更改,然后部署,IIS 可以动态编译并与其后面的 C# 代码合并。

我可以对 ashx 文件做类似的事情吗?

这是来自 MSDN 的引用。http://msdn.microsoft.com/en-us/library/ms366723(v=vs.100).aspx

ASP.NET 支持动态编译 ASP.NET 页面(.aspx 文件)、ASP.NET Web 服务(.asmx 文件)、ASP.NET HTTP 处理程序(.ashx 文件)

谢谢,这可以节省我很多时间!

asp.net compilation dynamic ashx

3
推荐指数
1
解决办法
6739
查看次数