当前位置:编程学习 > C#/ASP.NET >>

100分求助,ASHX处理程序一个困扰我大半年的问题~~~

我这边用ASHX 处理手机客户端发过来的JSON 数据,客户端的安装量大概有100W左右,每天都会发送数据过来我处理,然后通过ASHX解析后存储,同时返回处理结果~~ 

问题是返回客户端的结果超级慢,经过排除了程序的问题,发现就下面几句话,就会导致网站变的超级慢。
客户端是用POST发过来KEY 为mobiledata的JSON 字符串。
为了排除程序问题,我收到数据什么都不做,直接返回结果,就是这样的,用网页打开那个ASHX 页面也是超级之慢

    public void ProcessRequest(HttpContext context)
    {
         if (context.Request.Form["mobiledata"] == null)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"0\"}]}");

           }
        else
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"1\"}]}");
        
        }
}


更让我想不通的是,有的时候会抽风的好了,就是正常的处理后返回很快,总是在重启IIS ,什么应用池设置,也不知道怎么弄的,不知不觉又好了,重启服务器之后,又挂了~~~但又找不到原因~!!!

大家帮我看看怎么这么奇怪~~~ --------------------编程问答--------------------
引用 楼主 u012252167 的回复:
我这边用ASHX 处理手机客户端发过来的JSON 数据,客户端的安装量大概有100W左右,每天都会发送数据过来我处理,然后通过ASHX解析后存储,同时返回处理结果~~ 

问题是返回客户端的结果超级慢,经过排除了程序的问题,发现就下面几句话,就会导致网站变的超级慢。
客户端是用POST发过来KEY 为mobiledata的JSON 字符串。
为了排除程序问题,我收到数据什么都不做,直接返回结果,就是这样的,用网页打开那个ASHX 页面也是超级之慢

    public void ProcessRequest(HttpContext context)
    {
         if (context.Request.Form["mobiledata"] == null)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"0\"}]}");

           }
        else
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"1\"}]}");
        
        }
}


更让我想不通的是,有的时候会抽风的好了,就是正常的处理后返回很快,总是在重启IIS ,什么应用池设置,也不知道怎么弄的,不知不觉又好了,重启服务器之后,又挂了~~~但又找不到原因~!!!

大家帮我看看怎么这么奇怪~~~


  context.Response.ContentType = "text/plain";

一句就好了,你重复使用代码,肯定了! --------------------编程问答--------------------
引用 楼主 u012252167 的回复:
我这边用ASHX 处理手机客户端发过来的JSON 数据,客户端的安装量大概有100W左右,每天都会发送数据过来我处理,然后通过ASHX解析后存储,同时返回处理结果~~ 

你这是要赶上大数据处理的节奏啊!
分析并发量,网络带宽,数据存储部分等等各种... --------------------编程问答--------------------
引用 1 楼 hou306010849 的回复:
Quote: 引用 楼主 u012252167 的回复:

我这边用ASHX 处理手机客户端发过来的JSON 数据,客户端的安装量大概有100W左右,每天都会发送数据过来我处理,然后通过ASHX解析后存储,同时返回处理结果~~ 

问题是返回客户端的结果超级慢,经过排除了程序的问题,发现就下面几句话,就会导致网站变的超级慢。
客户端是用POST发过来KEY 为mobiledata的JSON 字符串。
为了排除程序问题,我收到数据什么都不做,直接返回结果,就是这样的,用网页打开那个ASHX 页面也是超级之慢

    public void ProcessRequest(HttpContext context)
    {
         if (context.Request.Form["mobiledata"] == null)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"0\"}]}");

           }
        else
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"1\"}]}");
        
        }
}


更让我想不通的是,有的时候会抽风的好了,就是正常的处理后返回很快,总是在重启IIS ,什么应用池设置,也不知道怎么弄的,不知不觉又好了,重启服务器之后,又挂了~~~但又找不到原因~!!!

大家帮我看看怎么这么奇怪~~~


  context.Response.ContentType = "text/plain";

一句就好了,你重复使用代码,肯定了!

加上这句话应该也没什么问题吧~~

我去掉了,上传到服务器依旧慢~~ --------------------编程问答--------------------
引用 2 楼 tsgx_1989 的回复:
Quote: 引用 楼主 u012252167 的回复:

我这边用ASHX 处理手机客户端发过来的JSON 数据,客户端的安装量大概有100W左右,每天都会发送数据过来我处理,然后通过ASHX解析后存储,同时返回处理结果~~ 

你这是要赶上大数据处理的节奏啊!
分析并发量,网络带宽,数据存储部分等等各种...


数据量不大~~,每秒大概10条的样子~~~现在的情况是我不做任何解析存储,也是这么慢~~
网络不是问题,带宽充裕,ping IP 没有延迟 ~~ --------------------编程问答--------------------
引用 4 楼 u012252167 的回复:
Quote: 引用 2 楼 tsgx_1989 的回复:

Quote: 引用 楼主 u012252167 的回复:

我这边用ASHX 处理手机客户端发过来的JSON 数据,客户端的安装量大概有100W左右,每天都会发送数据过来我处理,然后通过ASHX解析后存储,同时返回处理结果~~ 

你这是要赶上大数据处理的节奏啊!
分析并发量,网络带宽,数据存储部分等等各种...


数据量不大~~,每秒大概10条的样子~~~现在的情况是我不做任何解析存储,也是这么慢~~
网络不是问题,带宽充裕,ping IP 没有延迟 ~~


请求太多了把,IIS不够了把?就这两句代码,不至于会很慢,是不是服务器的问题? --------------------编程问答--------------------
引用 5 楼 hou306010849 的回复:
Quote: 引用 4 楼 u012252167 的回复:

Quote: 引用 2 楼 tsgx_1989 的回复:

Quote: 引用 楼主 u012252167 的回复:

我这边用ASHX 处理手机客户端发过来的JSON 数据,客户端的安装量大概有100W左右,每天都会发送数据过来我处理,然后通过ASHX解析后存储,同时返回处理结果~~ 

你这是要赶上大数据处理的节奏啊!
分析并发量,网络带宽,数据存储部分等等各种...


数据量不大~~,每秒大概10条的样子~~~现在的情况是我不做任何解析存储,也是这么慢~~
网络不是问题,带宽充裕,ping IP 没有延迟 ~~


请求太多了把,IIS不够了把?就这两句代码,不至于会很慢,是不是服务器的问题?


请求应该也不是太多啊 ~~~就算每秒请求50个,这个服务器配置也是E5+16G 的,应该也没问题,我现在的CPU 40% (还有其他的东西要处理),内存30%。。。IIS 不够在哪设置 ~~? 就是那两句话,什么也不做,就是这么慢。。真是郁闷~~~ --------------------编程问答--------------------
引用 6 楼 u012252167 的回复:
Quote: 引用 5 楼 hou306010849 的回复:

Quote: 引用 4 楼 u012252167 的回复:

Quote: 引用 2 楼 tsgx_1989 的回复:

Quote: 引用 楼主 u012252167 的回复:

我这边用ASHX 处理手机客户端发过来的JSON 数据,客户端的安装量大概有100W左右,每天都会发送数据过来我处理,然后通过ASHX解析后存储,同时返回处理结果~~ 

你这是要赶上大数据处理的节奏啊!
分析并发量,网络带宽,数据存储部分等等各种...


数据量不大~~,每秒大概10条的样子~~~现在的情况是我不做任何解析存储,也是这么慢~~
网络不是问题,带宽充裕,ping IP 没有延迟 ~~


请求太多了把,IIS不够了把?就这两句代码,不至于会很慢,是不是服务器的问题?


请求应该也不是太多啊 ~~~就算每秒请求50个,这个服务器配置也是E5+16G 的,应该也没问题,我现在的CPU 40% (还有其他的东西要处理),内存30%。。。IIS 不够在哪设置 ~~? 就是那两句话,什么也不做,就是这么慢。。真是郁闷~~~


那就说不过去了,除非是你代码问题! 关键是你没给出核心代码! --------------------编程问答--------------------
引用 7 楼 hou306010849 的回复:
Quote: 引用 6 楼 u012252167 的回复:

Quote: 引用 5 楼 hou306010849 的回复:

Quote: 引用 4 楼 u012252167 的回复:

Quote: 引用 2 楼 tsgx_1989 的回复:

Quote: 引用 楼主 u012252167 的回复:

我这边用ASHX 处理手机客户端发过来的JSON 数据,客户端的安装量大概有100W左右,每天都会发送数据过来我处理,然后通过ASHX解析后存储,同时返回处理结果~~ 

你这是要赶上大数据处理的节奏啊!
分析并发量,网络带宽,数据存储部分等等各种...


数据量不大~~,每秒大概10条的样子~~~现在的情况是我不做任何解析存储,也是这么慢~~
网络不是问题,带宽充裕,ping IP 没有延迟 ~~


请求太多了把,IIS不够了把?就这两句代码,不至于会很慢,是不是服务器的问题?


请求应该也不是太多啊 ~~~就算每秒请求50个,这个服务器配置也是E5+16G 的,应该也没问题,我现在的CPU 40% (还有其他的东西要处理),内存30%。。。IIS 不够在哪设置 ~~? 就是那两句话,什么也不做,就是这么慢。。真是郁闷~~~


那就说不过去了,除非是你代码问题! 关键是你没给出核心代码!


整个服务器就是那一个网站,整个网站就那一个ASHX 页面,那个ASHX页面就我贴出来的两句话(为了排除是程序的问题)。。 --------------------编程问答-------------------- 每秒10条也很大了。   哥哥。   这个东西不是两句代码就能解决的问题   都100W的装机量了。   --------------------编程问答--------------------
引用 8 楼 u012252167 的回复:
Quote: 引用 7 楼 hou306010849 的回复:

Quote: 引用 6 楼 u012252167 的回复:

Quote: 引用 5 楼 hou306010849 的回复:

Quote: 引用 4 楼 u012252167 的回复:

Quote: 引用 2 楼 tsgx_1989 的回复:

Quote: 引用 楼主 u012252167 的回复:

我这边用ASHX 处理手机客户端发过来的JSON 数据,客户端的安装量大概有100W左右,每天都会发送数据过来我处理,然后通过ASHX解析后存储,同时返回处理结果~~ 

你这是要赶上大数据处理的节奏啊!
分析并发量,网络带宽,数据存储部分等等各种...


数据量不大~~,每秒大概10条的样子~~~现在的情况是我不做任何解析存储,也是这么慢~~
网络不是问题,带宽充裕,ping IP 没有延迟 ~~


请求太多了把,IIS不够了把?就这两句代码,不至于会很慢,是不是服务器的问题?


请求应该也不是太多啊 ~~~就算每秒请求50个,这个服务器配置也是E5+16G 的,应该也没问题,我现在的CPU 40% (还有其他的东西要处理),内存30%。。。IIS 不够在哪设置 ~~? 就是那两句话,什么也不做,就是这么慢。。真是郁闷~~~


那就说不过去了,除非是你代码问题! 关键是你没给出核心代码!


整个服务器就是那一个网站,整个网站就那一个ASHX 页面,那个ASHX页面就我贴出来的两句话(为了排除是程序的问题)。。


这东西不好找原因!比调戏工具,调试看下,你的JSON!多开几个,同时测试下! --------------------编程问答--------------------
引用 4 楼 u012252167 的回复:
Quote: 引用 2 楼 tsgx_1989 的回复:

Quote: 引用 楼主 u012252167 的回复:

我这边用ASHX 处理手机客户端发过来的JSON 数据,客户端的安装量大概有100W左右,每天都会发送数据过来我处理,然后通过ASHX解析后存储,同时返回处理结果~~ 

你这是要赶上大数据处理的节奏啊!
分析并发量,网络带宽,数据存储部分等等各种...


数据量不大~~,每秒大概10条的样子~~~现在的情况是我不做任何解析存储,也是这么慢~~
网络不是问题,带宽充裕,ping IP 没有延迟 ~~


重启一下 网站,清理一下应用程序池,重新看一下,是否依然缓慢 --------------------编程问答--------------------
引用 10 楼 hou306010849 的回复:
Quote: 引用 8 楼 u012252167 的回复:

Quote: 引用 7 楼 hou306010849 的回复:

Quote: 引用 6 楼 u012252167 的回复:

Quote: 引用 5 楼 hou306010849 的回复:

Quote: 引用 4 楼 u012252167 的回复:

Quote: 引用 2 楼 tsgx_1989 的回复:

Quote: 引用 楼主 u012252167 的回复:

我这边用ASHX 处理手机客户端发过来的JSON 数据,客户端的安装量大概有100W左右,每天都会发送数据过来我处理,然后通过ASHX解析后存储,同时返回处理结果~~ 

你这是要赶上大数据处理的节奏啊!
分析并发量,网络带宽,数据存储部分等等各种...


数据量不大~~,每秒大概10条的样子~~~现在的情况是我不做任何解析存储,也是这么慢~~
网络不是问题,带宽充裕,ping IP 没有延迟 ~~


请求太多了把,IIS不够了把?就这两句代码,不至于会很慢,是不是服务器的问题?


请求应该也不是太多啊 ~~~就算每秒请求50个,这个服务器配置也是E5+16G 的,应该也没问题,我现在的CPU 40% (还有其他的东西要处理),内存30%。。。IIS 不够在哪设置 ~~? 就是那两句话,什么也不做,就是这么慢。。真是郁闷~~~


那就说不过去了,除非是你代码问题! 关键是你没给出核心代码!


整个服务器就是那一个网站,整个网站就那一个ASHX 页面,那个ASHX页面就我贴出来的两句话(为了排除是程序的问题)。。


这东西不好找原因!比调戏工具,调试看下,你的JSON!多开几个,同时测试下!


跟JSON 没一毛钱关系啊 ,,,我压根没解析JSON~~~  在我本地当然没问题。。联网就出问题了。。哎~~ --------------------编程问答--------------------
引用 12 楼 u012252167 的回复:
Quote: 引用 10 楼 hou306010849 的回复:

Quote: 引用 8 楼 u012252167 的回复:

Quote: 引用 7 楼 hou306010849 的回复:

Quote: 引用 6 楼 u012252167 的回复:

Quote: 引用 5 楼 hou306010849 的回复:

Quote: 引用 4 楼 u012252167 的回复:

Quote: 引用 2 楼 tsgx_1989 的回复:

Quote: 引用 楼主 u012252167 的回复:

我这边用ASHX 处理手机客户端发过来的JSON 数据,客户端的安装量大概有100W左右,每天都会发送数据过来我处理,然后通过ASHX解析后存储,同时返回处理结果~~ 

你这是要赶上大数据处理的节奏啊!
分析并发量,网络带宽,数据存储部分等等各种...


数据量不大~~,每秒大概10条的样子~~~现在的情况是我不做任何解析存储,也是这么慢~~
网络不是问题,带宽充裕,ping IP 没有延迟 ~~


请求太多了把,IIS不够了把?就这两句代码,不至于会很慢,是不是服务器的问题?


请求应该也不是太多啊 ~~~就算每秒请求50个,这个服务器配置也是E5+16G 的,应该也没问题,我现在的CPU 40% (还有其他的东西要处理),内存30%。。。IIS 不够在哪设置 ~~? 就是那两句话,什么也不做,就是这么慢。。真是郁闷~~~


那就说不过去了,除非是你代码问题! 关键是你没给出核心代码!


整个服务器就是那一个网站,整个网站就那一个ASHX 页面,那个ASHX页面就我贴出来的两句话(为了排除是程序的问题)。。


这东西不好找原因!比调戏工具,调试看下,你的JSON!多开几个,同时测试下!


跟JSON 没一毛钱关系啊 ,,,我压根没解析JSON~~~  在我本地当然没问题。。联网就出问题了。。哎~~


这问题,就不是好解决了,毕竟访问量很大! --------------------编程问答--------------------
引用 11 楼 tsgx_1989 的回复:
重启一下 网站,清理一下应用程序池,重新看一下,是否依然缓慢


重启无数次了,,清理应用池也无数次,,,IIS 的都是默认设置,应该没问题。 --------------------编程问答--------------------
引用 14 楼 u012252167 的回复:
Quote: 引用 11 楼 tsgx_1989 的回复:



重启一下 网站,清理一下应用程序池,重新看一下,是否依然缓慢


重启无数次了,,清理应用池也无数次,,,IIS 的都是默认设置,应该没问题。

创建一个静态HTML 页 放到该网站下,查看是否依然缓慢. --------------------编程问答--------------------
引用 15 楼 tsgx_1989 的回复:
Quote: 引用 14 楼 u012252167 的回复:

Quote: 引用 11 楼 tsgx_1989 的回复:



重启一下 网站,清理一下应用程序池,重新看一下,是否依然缓慢


重启无数次了,,清理应用池也无数次,,,IIS 的都是默认设置,应该没问题。

创建一个静态HTML 页 放到该网站下,查看是否依然缓慢.

静态HTML 页 多次测试访问时注意加时间戳 --------------------编程问答--------------------
引用 15 楼 tsgx_1989 的回复:
Quote: 引用 14 楼 u012252167 的回复:

Quote: 引用 11 楼 tsgx_1989 的回复:



重启一下 网站,清理一下应用程序池,重新看一下,是否依然缓慢


重启无数次了,,清理应用池也无数次,,,IIS 的都是默认设置,应该没问题。

创建一个静态HTML 页 放到该网站下,查看是否依然缓慢.

单独创建HTML 页面不会出问题,只要放进去那个ASHX页面,整个网站的所有的页面都会慢~ --------------------编程问答--------------------
引用 9 楼 huanggreat 的回复:
每秒10条也很大了。   哥哥。   这个东西不是两句代码就能解决的问题   都100W的装机量了。  

CPU ,网络,内存 ,看起来都没有严重的瓶颈~~~~除了IIS 和程序, 实在想不到什么问题 了 ~~ --------------------编程问答-------------------- 顶啊  ,,还没有解决~~~ --------------------编程问答--------------------
引用 楼主 u012252167 的回复:
    public void ProcessRequest(HttpContext context)
    {
         if (context.Request.Form["mobiledata"] == null)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"0\"}]}");

           }
        else
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"1\"}]}");
        
        }
}


如果你这样试都不行应该不大会是程序的问题,而且直接打开这个网页都很慢
你得查下硬件和网络问题了,另外你多少带宽呀 --------------------编程问答--------------------
引用 20 楼 yu94285572 的回复:
Quote: 引用 楼主 u012252167 的回复:

    public void ProcessRequest(HttpContext context)
    {
         if (context.Request.Form["mobiledata"] == null)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"0\"}]}");

           }
        else
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"1\"}]}");
        
        }
}


如果你这样试都不行应该不大会是程序的问题,而且直接打开这个网页都很慢
你得查下硬件和网络问题了,另外你多少带宽呀


CPU 和 内存都是50% 以下。。。带宽更不是问题,ping IP 基本没有延迟,2MS --------------------编程问答--------------------
引用 21 楼 u012252167 的回复:
Quote: 引用 20 楼 yu94285572 的回复:

Quote: 引用 楼主 u012252167 的回复:

    public void ProcessRequest(HttpContext context)
    {
         if (context.Request.Form["mobiledata"] == null)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"0\"}]}");

           }
        else
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"1\"}]}");
        
        }
}


如果你这样试都不行应该不大会是程序的问题,而且直接打开这个网页都很慢
你得查下硬件和网络问题了,另外你多少带宽呀


CPU 和 内存都是50% 以下。。。带宽更不是问题,ping IP 基本没有延迟,2MS




引用 20 楼 yu94285572 的回复:
Quote: 引用 楼主 u012252167 的回复:

    public void ProcessRequest(HttpContext context)
    {
         if (context.Request.Form["mobiledata"] == null)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"0\"}]}");

           }
        else
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("{\"result\":[{\"success\":\"1\"}]}");
        
        }
}


如果你这样试都不行应该不大会是程序的问题,而且直接打开这个网页都很慢
你得查下硬件和网络问题了,另外你多少带宽呀


每次重启IIS 的时候都会假死,只有重启服务器才能解决~~~  --------------------编程问答-------------------- string.isnullorempty

或者你 直接访问context.Request.Form["mobiledata"][0]看异常不 --------------------编程问答-------------------- 单看此程序没有问题 --------------------编程问答--------------------
引用 24 楼 zhanglong_longlong 的回复:
单看此程序没有问题

跟IIS 设置有关系么 ~~ 就这两段代码,,我重启IIS  ,还出现假死现象,IIS 完全死机~~,只有重启服务器解决~~~
--------------------编程问答-------------------- 看看web.config是否配置了对ASHX的监听,由可能是那边的处理引起的 --------------------编程问答--------------------
引用 26 楼 liuchaolin 的回复:
看看web.config是否配置了对ASHX的监听,由可能是那边的处理引起的

WEBCONFIG 就是这
<?xml version="1.0"?>
<!-- 
    注意: 除了手动编辑此文件以外,您还可以使用 
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
     “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表在 
    machine.config.comments 中,该文件通常位于 
    \Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<!-- 
            设置 compilation debug="true" 将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 true。
        -->
<compilation debug="true">
<assemblies>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></assemblies></compilation>
<!--
            通过 <authentication> 节可以配置 ASP.NET 使用的 
            安全身份验证模式,
            以标识传入的用户。 
        -->
<authentication mode="Windows"/>
<!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
</system.web>
</configuration>




----------
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></assemblies></compilation>
这个是为了用      JavaScriptSerializer jss = new JavaScriptSerializer();
                    ArrayList arrList = null;
                   arrList = jss.Deserialize<ArrayList>(json);

解析JSON 字符串 添加了的SYSTEM.WEB.EXTENS那个DLL的 其他webconfig都没用动
--------------------编程问答-------------------- <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></assemblies>

这个是预加载配置,对第一次访问可能会有点慢,但后边的访问会很快,你多试几次,不行就发布了再测试 --------------------编程问答--------------------
引用 28 楼 liuchaolin 的回复:
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></assemblies>

这个是预加载配置,对第一次访问可能会有点慢,但后边的访问会很快,你多试几次,不行就发布了再测试


收到的数据不多,,没收到一条JSON 数据我都先完全放入到接收日志里面,然后解析。
我在接受日志里面看到其实有时候没有多少数据近来,5秒钟才10条数据进来,按照我的服务器配置,这些应该是小事一桩的,而且CPU 和内存都不到50%,但就是卡的要死,用网页打开那个ASHX 页面,至少需要100秒才又回复,感觉是卡住了一样。 重启IIS 还假死。。。完全不知道问题出在哪 ~~~ --------------------编程问答-------------------- 你换过服务器试了么 --------------------编程问答--------------------
引用 30 楼 machong8183 的回复:
你换过服务器试了么


HTTP 错误 503.3 - Service Unavailable
ASP.NET rejected this request because the queue limit was exceeded.

出现这个问题,在应用程序池里面设置1000,,,应该没这么高啊 ~~~~~ --------------------编程问答--------------------
引用 28 楼 liuchaolin 的回复:
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></assemblies>

这个是预加载配置,对第一次访问可能会有点慢,但后边的访问会很快,你多试几次,不行就发布了再测试


我用服务器的IIS 点右键浏览,这个速度很快,,能不能说明些问题呢 ? --------------------编程问答--------------------
引用 30 楼 machong8183 的回复:
你换过服务器试了么


CPU 和内存都是22% ,,,这正是奇怪的要死~~~ --------------------编程问答-------------------- 处理100万客户端的工程师竟然要到CSDN寻求答案... --------------------编程问答--------------------
引用 34 楼 KarasCanvas 的回复:
处理100万客户端的工程师竟然要到CSDN寻求答案...


额。。我不是工程师。。我是一个业余的。。因为那个现象很奇怪的~~~百思不得其解 --------------------编程问答-------------------- 试试这样:
应用程序池属性\回收工作进程(请求数目)的勾去掉,请求队列限制的勾去掉或改成10000及更大
C:\WINDOWS\Microsoft.NET\Framework\应用程序池使用的.net版本号\CONFIG\machine.config
将system.web节下面的
<processModel autoConfig="true"/>
改为
<processModel autoConfig="true" requestQueueLimit="这里写个队列上限,建议为10000以上"/> --------------------编程问答-------------------- http://technet.microsoft.com/zh-cn/office/ocs/dd425294(office.13).aspx

这个应该有帮助 --------------------编程问答-------------------- mark 请问楼主是否解决了该问题 想学习下下 --------------------编程问答-------------------- 等楼主解决后分享经验。 --------------------编程问答-------------------- 楼主,我严重怀疑是这语句引起的

 if (context.Request.Form["mobiledata"] == null)

你把它注释掉,直接返回,

这语句是遍历整个表单的所有项的

假如,你一个表单有200个项,然后1秒内10条记录,这个还是占用资源的

如果不判断后,还是不行,那么是你的IIS配置有问题了,肯定是配置了什么影响到ASHX 页面

如果是,请检查一下web.config --------------------编程问答-------------------- 100W客户端....


服务器什么配置? 多少内存?做集群了没?做负载均衡了没?

100W客户端 我感觉问题不在代码上...

就算你一个hello world100W个客户端也受不了吧.. --------------------编程问答-------------------- context.Request.Form["mobiledata"] 这个反回的数据集结果可能过大 在加数量并发引起的 --------------------编程问答--------------------
引用 40 楼 likevs 的回复:
楼主,我严重怀疑是这语句引起的

 if (context.Request.Form["mobiledata"] == null)

你把它注释掉,直接返回,

这语句是遍历整个表单的所有项的

假如,你一个表单有200个项,然后1秒内10条记录,这个还是占用资源的

如果不判断后,还是不行,那么是你的IIS配置有问题了,肯定是配置了什么影响到ASHX 页面

如果是,请检查一下web.config


就是这样的一句话引起的啊,,我早就知道了啊。。但如何处理,不用这句话 ?POST请求只有这句话得到数据啊 ~~~ --------------------编程问答--------------------
引用 38 楼 hzfqq333 的回复:
mark 请问楼主是否解决了该问题 想学习下下

在我无数种重启IIS ,重启电脑,等操作中,不知不觉好了,今天替换下程序,又挂了,,这不又过来了看答案了。。 --------------------编程问答--------------------
引用 42 楼 jhl52771 的回复:
context.Request.Form["mobiledata"] 这个反回的数据集结果可能过大 在加数量并发引起的

那如何处理,,有时候会无缘无故的好了。好了只要不动 就一直没事,替换程序又挂了。。我受不了了,,关键是没找到答案。。 --------------------编程问答-------------------- 关注一下,看有没有结果 --------------------编程问答--------------------
引用 37 楼 liuchaolin 的回复:
http://technet.microsoft.com/zh-cn/office/ocs/dd425294(office.13).aspx

这个应该有帮助


上周五无缘无故的好了,什么都没改,只是在改虚拟目录,重启IIS,重启电脑,只有这些方法。。然后好了,一直都没什么问题,返回值也是1秒内

今天替换了下程序(我确定不是改程序的问题),,,又挂了,, 又是那样的情况~~
CPU 20%,内存10% ,ASHX 页面死打不卡,或者延迟200秒才又返回值。。。这TMD 的奇了怪~!~!!
ASHX 页面收到的数据是比较大。。但我觉得不是这个问题。。。 --------------------编程问答-------------------- <authentication mode="Windows"/>

web.config里面去掉所有不需要的处理模块试试
<remove name="WindowsAuthentication" />  
<remove name="FormsAuthentication" />  
<remove name="PassportAuthentication" />  

但是个人感觉这个应该是iis和服务器的问题,可能的话建议重装系统 --------------------编程问答-------------------- <compilation debug="true">
另外这个改成false啊 --------------------编程问答--------------------
引用 49 楼 a407121393 的回复:
<compilation debug="true">
另外这个改成false啊

IIS 重启的时候特别容易假死,只有重启电脑解决~~~ --------------------编程问答--------------------
引用 47 楼 u012252167 的回复:
Quote: 引用 37 楼 liuchaolin 的回复:

http://technet.microsoft.com/zh-cn/office/ocs/dd425294(office.13).aspx

这个应该有帮助


上周五无缘无故的好了,什么都没改,只是在改虚拟目录,重启IIS,重启电脑,只有这些方法。。然后好了,一直都没什么问题,返回值也是1秒内

今天替换了下程序(我确定不是改程序的问题),,,又挂了,, 又是那样的情况~~
CPU 20%,内存10% ,ASHX 页面死打不卡,或者延迟200秒才又返回值。。。这TMD 的奇了怪~!~!!
ASHX 页面收到的数据是比较大。。但我觉得不是这个问题。。。


这个站点是独立配置的应用程序池不? 还是和其它站点共用?

你可以考虑一下迁移到别的服务器试试,如果还是不行,说明程序本身的问题 --------------------编程问答--------------------
引用 43 楼 u012252167 的回复:
Quote: 引用 40 楼 likevs 的回复:

楼主,我严重怀疑是这语句引起的

 if (context.Request.Form["mobiledata"] == null)

你把它注释掉,直接返回,

这语句是遍历整个表单的所有项的

假如,你一个表单有200个项,然后1秒内10条记录,这个还是占用资源的

如果不判断后,还是不行,那么是你的IIS配置有问题了,肯定是配置了什么影响到ASHX 页面

如果是,请检查一下web.config


就是这样的一句话引起的啊,,我早就知道了啊。。但如何处理,不用这句话 ?POST请求只有这句话得到数据啊 ~~~


POST的话,这句话不能改,你看一下能不能缩小一些提交过来的数据

至于你说1秒种10条数据,这种不算大的,如果.NET连这个都处理不了,那还混在Web界个毛线,服务器再烂也是双核吧,一秒CPU处理几千万亿次吧,指令

所以,观察一下POST提交过来的数据,到底能不能优化一下数据

然后,根据我说的,CPU不会这么差的,除非你拿到数据后,做很多 数据类型 “转换” 的操作,因为类型强制转换,真的可以杀死一台四核机器

请好好看一下IIS里的参数配置,比如内存最大使用限制,最大同时访问请求个数限制(也就是最大排队等待服务请求线程数),1秒钟10条,10秒内也有蛮多请求过来的,Web这种分布式访问请求的,算是多线程了,所以,这个量还是蛮大的,你得细看IIS,不然它罢工也是应该的

还有就是SQL数据库,无论如何也要移到另一台服务器上,不然你这样的操作量,把它和IIS放同一服务器,你就等着哭吧
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,