标签: ashx

11
推荐指数
1
解决办法
2万
查看次数

通过ASHX处理程序支持可恢复的HTTP下载?

我们通过ASP.NET中的ASHX处理程序提供应用程序设置的下载.

客户告诉我们他使用了一些第三方下载管理器应用程序,我们提供文件的方式目前不支持他的下载管理器应用程序的"恢复"功能.

我的问题是:

恢复下载的基本思路是什么?是否有某个HTTP GET请求告诉我开始的偏移?

asp.net download ashx download-manager

10
推荐指数
2
解决办法
8620
查看次数

只有在下载后才计算下载

我们有这个代码供下载:

public class downloadRelease : IHttpHandler {

    public void ProcessRequest (HttpContext context) {

        -- snip --

        context.Response.Clear();
        context.Response.ContentType = "application/octet-stream";
        context.Response.AddHeader("Content-Disposition", "attachment; filename=" + OriginalFileName);
        context.Response.WriteFile(Settings.ReleaseFileLocation + ActualFileName);

        // Log download
        Constructor.VersionReleaseDownload.NewReleaseDownload(ActualFileName);
Run Code Online (Sandbox Code Playgroud)

它工作正常,除了日志下载代码在下载开始后立即运行,而不是在下载完全按照我们的预期完成时.

有人可以解释为什么会这样,以及如何更改它以便它只在完成时记录?我们不想计算部分下载量.

c# asp.net download ashx

10
推荐指数
1
解决办法
411
查看次数

从通用处理程序(.ashx)进行异步调用

我在我的网站上有一个表单,它将json发布到异步处理程序,它验证数据并返回响应OK或错误,我将根据我的处理程序给出的响应在客户端上进行重定向.

但是当响应正常时,我想异步执行一些任务.但异步调用在.ashx代码中不起作用.它始终是同步的.

你能就此给我一个建议.

码:

public class ValidateHandler : IHttpHandler, IRequiresSessionState
    {

        public void ProcessRequest(HttpContext context)
        {
            NameValueCollection nvcForm = context.Request.Form;
            Dictionary<string, string> errorFieldsDict = new Dictionary<string, string>();


            foreach (string nameValueKey in nvcForm.AllKeys)
            {
                regExpToTest = string.Empty;
                switch (nameValueKey)
                {
                    case "firstName":
                      //validate
                        break;
                    case "lastName":
                       //validate
                        break;
                    case "email":
                        //validate
                        break;
                    case "phoneNumber":
                    //validate
                        break;
                    case "phoneCountryCode":
                        //validate
                        break;
                    case "country":
                     //validate
                        break;
                    case "addressLine1":
                        //validate
                        break;
                    case "addressLine2":
                       //validate
                        break;
                    case "city":
                        //validate
                        break;
                    case "postalCode":
                        //validate
                        break;
                    default: …
Run Code Online (Sandbox Code Playgroud)

.net asp.net delegates asynchronous ashx

9
推荐指数
2
解决办法
8802
查看次数

ASP.NET MVC 3和Razor的ASHX处理程序

我想在ASP.NET MVC 3中使用Silverlight Multi File Uploader.问题是我需要使用ashx处理程序来处理文件上传(处理程序是库的一部分).如何将处理程序与ASP.NET MVC 3集成(我正在使用Razor视图引擎)?

ashx asp.net-mvc-3

8
推荐指数
2
解决办法
1万
查看次数

通过调用.ashx页面下载文件

我正在从主页客户端脚本(Jquery)请求.ashx页面,该脚本具有下载PDF文件的代码.当我调试它时,我可以看到执行"文件下载"代码,但文件没有下载.

 $.ajax({
            type: "POST",
            url: "FileDownload.ashx",
            dataType: "html",
            success: function (data) { }
        }
        );


     public class FileDownload : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        //context.Response.ContentType = "text/plain";
        //context.Response.Write("Hello World");

        string fileName = "BUSProjectCard.pdf";
        string filePath = context.Server.MapPath("~/Print/");
        context.Response.Clear();
        context.Response.ContentType = "application/pdf";
        context.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
        context.Response.TransmitFile(filePath + fileName);
        context.Response.End();
    }
Run Code Online (Sandbox Code Playgroud)

asp.net jquery ashx

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

如何调用ASHX处理程序并返回结果

我创建了一个Handler,在执行一些数据库工作后返回整数值.我想知道如何获得该值并通过调用该处理程序将该值赋给Label.

我用google搜索它,大多数示例使用Jquery.AJAX调用来检索值.我相信我也可以通过使用它获得价值.但是对于我公司的某些限制,我被限制使用代码.

任何例子都会有帮助.

Handler: http://somesite.com/Stores/GetOrderCount.ashx?sCode=VIC
which returns: 3
Run Code Online (Sandbox Code Playgroud)

需要将其分配给标签控件

到目前为止,我已经尝试了这么多.

HttpWebRequest request = (HttpWebRequest) WebRequest.Create("http://somesite.com/Stores/GetOrderCount.ashx?sCode=VIC");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Label1.Text = response.ToString() // this does not work
Run Code Online (Sandbox Code Playgroud)

c# asp.net ashx

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

IIS 7.0 503错误与通用处理程序(.ashx)实现IHttpAsyncHandler

我使用实现IHttpAsyncHandler的通用处理程序遇到了一些性能问题.最简单的是,处理程序接收GET请求,20秒后在响应中写入"<timeout />"后结束响应.

当使用10000-20000个并发请求锤击.ashx时,在准确的5000个请求之后,503服务器不可用.切换到同步模式并立即结束请求时,问题就消失了.

我已经修改了许多设置,但我唯一能够实现的是降低发生此错误的请求阈值.

这是我玩过的设置的简要说明:

machine.config中:

<configuration>
    ...
    <system.web>
        ...
        <processModel enable="true" requestQueueLimit="10000"/>
        ...
Run Code Online (Sandbox Code Playgroud)

web.config中:

<configuration>
    ...
    <system.web>
        ...
        <httpRuntime enable="true" appRequestQueueLimit="10000"/>
        ...
Run Code Online (Sandbox Code Playgroud)

IIS管理器> ApplicationPools>高级设置

Queue Length : 65535
Run Code Online (Sandbox Code Playgroud)

虽然我不能确定,但​​是如果请求是同步的,那么这些设置似乎工作正常,但是当异步时,在服务器开始告诉我离开之前,我似乎无法超越5000个请求.如果我把事情设置得更低(不能确切地记住上面的设置,但我已经尝试了所有设置),那么503计数会相应地上升,但是当负载严重时我永远不能阻止它超过5000 .

似乎有很多设置分散在无数的地方可能会影响到这一点,但5000似乎相当固定.我在这里看到appRequestQueueLimit不能超过5000,但是找不到关于此的更多信息,并想知道这是否是错误的信息.

IIS中是否存在任何类型的"泛滥控制"设置,可能会将单个主机限制为不超过5000个请求?如何让IIS处理更多5000个并发异步请求?

编辑2:是否有任何计数器或其他指标可能超出限制,我将如何进一步调查?

编辑:这是loadgenerator代码:

using System;
using System.Net;
using System.Threading;

namespace HammerTime
{
    class Program
    {
        private static int counter = 0;
        static void Main(string[] args)
        {
            var limit = 5000;
            ServicePointManager.DefaultConnectionLimit=limit;
            for (int i = 0; i < limit;++i )
            {
                StartWebRequest(i.ToString());

            }
            Console.ReadLine();
        }

        private …
Run Code Online (Sandbox Code Playgroud)

asp.net iis-7 ashx ihttpasynchandler http-status-code-503

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

ASP.Net 4.0 - 如何从ASHX中访问RouteData?

我的网站有一个处理器(FileDownload.ashx),处理所有文件下载请求.

我最近将我的站点迁移到ASP.NET 4.0,现在它广泛使用路由.处理页面请求(aspx)时一切正常,但它不能与我的处理程序一起工作 - 我遇到以下错误:

类型'.Handlers.FileDownload'不从'System.Web.UI.Page'继承.

这是有道理的,因为路由仅在页面中实现.

我需要采取哪些步骤才能将路由和我的.ashx一起使用?我希望能够RouteData.Values从路线中提取.

public class FileDownload : IHttpHandler
{
}
Run Code Online (Sandbox Code Playgroud)

asp.net routes httphandler ashx

7
推荐指数
1
解决办法
5364
查看次数

在ashx文件中,我可以设置返回文件的文件名吗?

我的ashx响应.编写一个返回的简单文本文件.我可以更改文件名,所以如果我的ashx位于mysite.com/someURL,它不会返回someURL.txt而是myFileName.txt吗?

asp.net ashx

7
推荐指数
1
解决办法
3066
查看次数