2012年2月27日

.net 2.0 asp.net 升级 asp net 4.0 升级

大家好,我们团队现在用开发环境是vs2010 .net 2.o framework asp.net, 昨天项目从.net 2.0 升级到。.net 4.0项目以后发现网站运行十分缓慢,页面95%的页面都无打开,即使打开首页也需要好几分钟,经过我们排查只有,发现移除一个附加httpmodel 以后项目就正常运行了,但是我们必须要次httpmodel 功能才正常,否则有部分功能无法使用,通过对应用程序的监控发现在这个httpModel 中有一个事件运行时间超过2~4分钟,请大家帮我分析一下具体产生的原因,请大家不吝指教

 

------------------------------------------------------------------------------

 public class UrlAppendParams : System.Web.IHttpModule
    {
        private long refId = 0;
        private string authCode = string.Empty;
        public void Init(HttpApplication application)
        {
            application.PostMapRequestHandler += new EventHandler(Application_PostMapRequestHandler);
            application.AcquireRequestState += new EventHandler(Application_AcquireRequestState);
            application.PostAcquireRequestState += new EventHandler(Application_PostAcquireRequestState);
            application.PostRequestHandlerExecute += new EventHandler(Application_ApplyUrlFilter);
            HttpContext.Current.Trace.Write(MethodInfo.GetCurrentMethod().Name, DateTime.Now.ToLongTimeString());

        } 

         具体出问题的事件方法就是此方法,在asp.net 2.0 的运行环境下正常,在asp.net 4.0 的运行环境运行时时间超过4分钟。

         private void Application_PostMapRequestHandler(object source, EventArgs e)

        {
            HttpContext.Current.Trace.Write(MethodInfo.GetCurrentMethod().Name, DateTime.Now.ToLongTimeString());
            HttpApplication application = (HttpApplication)source;
            if (application.Context.Handler is IReadOnlySessionState || application.Context.Handler is IRequiresSessionState)
            {
                // no need to replace the current handler 
                return;
            }
            // swap the current handler 
            application.Context.Handler = new UrlParamsFilterHttpHandler(application.Context.Handler);
        } 

        。。。。。。。。。。

  public class UrlParamsFilterHttpHandler : IHttpHandler, IRequiresSessionState

    {
        internal readonly IHttpHandler OriginalHandler;
        public UrlParamsFilterHttpHandler()
        {
            OriginalHandler = HttpContext.Current.Handler;
            HttpContext.Current.Trace.Write(MethodInfo.GetCurrentMethod().Name, DateTime.Now.ToLongTimeString());
        }
        public UrlParamsFilterHttpHandler(IHttpHandler originalHandler)
        {
            OriginalHandler = originalHandler;
            HttpContext.Current.Trace.Write(MethodInfo.GetCurrentMethod().Name, DateTime.Now.ToLongTimeString());
        }
        public void ProcessRequest(HttpContext context)
        {
            HttpContext.Current.Trace.Write(MethodInfo.GetCurrentMethod().Name, DateTime.Now.ToLongTimeString());
            //// do not worry, ProcessRequest() will not be called, but let's be safe 
            //throw new InvalidOperationException("MyHttpHandler cannot process requests.");
        }
        public bool IsReusable
        {
            // IsReusable must be set to false since class has a member! 
            get { return false; }
        }
    }

是否是2.0 和4.0 有很大的区别吗?asp.net 生命周期应该是一样的啊,如果这个有问题的话,还有没有其他方法可以替代解决此问题呢。请大家多多指教。 

 

posted @ 2012-02-27 12:04 AndyYu 阅读(2235) 评论(7) 编辑

求助 .net 2.0 asp.net 升级 asp net 4.0 升级到 项目运行十分缓慢

大家好,我们团队现在用开发环境是vs2010 .net 2.o framework asp.net, 昨天项目从.net 2.0 升级到。.net 4.0项目以后发现网站运行十分缓慢,页面95%的页面都无打开,即使打开首页也需要好几分钟,经过我们排查只有,发现移除一个附加httpmodel 以后项目就正常运行了,但是我们必须要次httpmodel 功能才正常,否则有部分功能无法使用,通过对应用程序的监控发现在这个httpModel 中有一个事件运行时间超过2~4分钟,请大家帮我分析一下具体产生的原因,请大家不吝指教

 

------------------------------------------------------------------------------

 public class UrlAppendParams : System.Web.IHttpModule
    {
        private long refId = 0;
        private string authCode = string.Empty;
        public void Init(HttpApplication application)
        {
            application.PostMapRequestHandler += new EventHandler(Application_PostMapRequestHandler);
            application.AcquireRequestState += new EventHandler(Application_AcquireRequestState);
            application.PostAcquireRequestState += new EventHandler(Application_PostAcquireRequestState);
            application.PostRequestHandlerExecute += new EventHandler(Application_ApplyUrlFilter);
            HttpContext.Current.Trace.Write(MethodInfo.GetCurrentMethod().Name, DateTime.Now.ToLongTimeString());

        } 

         具体出问题的事件方法就是此方法,在asp.net 2.0 的运行环境下正常,在asp.net 4.0 的运行环境运行时时间超过4分钟。

         private void Application_PostMapRequestHandler(object source, EventArgs e)

        {
            HttpContext.Current.Trace.Write(MethodInfo.GetCurrentMethod().Name, DateTime.Now.ToLongTimeString());
            HttpApplication application = (HttpApplication)source;
            if (application.Context.Handler is IReadOnlySessionState || application.Context.Handler is IRequiresSessionState)
            {
                // no need to replace the current handler 
                return;
            }
            // swap the current handler 
            application.Context.Handler = new UrlParamsFilterHttpHandler(application.Context.Handler);
        } 

        。。。。。。。。。。

  public class UrlParamsFilterHttpHandler : IHttpHandler, IRequiresSessionState

    {
        internal readonly IHttpHandler OriginalHandler;
        public UrlParamsFilterHttpHandler()
        {
            OriginalHandler = HttpContext.Current.Handler;
            HttpContext.Current.Trace.Write(MethodInfo.GetCurrentMethod().Name, DateTime.Now.ToLongTimeString());
        }
        public UrlParamsFilterHttpHandler(IHttpHandler originalHandler)
        {
            OriginalHandler = originalHandler;
            HttpContext.Current.Trace.Write(MethodInfo.GetCurrentMethod().Name, DateTime.Now.ToLongTimeString());
        }
        public void ProcessRequest(HttpContext context)
        {
            HttpContext.Current.Trace.Write(MethodInfo.GetCurrentMethod().Name, DateTime.Now.ToLongTimeString());
            //// do not worry, ProcessRequest() will not be called, but let's be safe 
            //throw new InvalidOperationException("MyHttpHandler cannot process requests.");
        }
        public bool IsReusable
        {
            // IsReusable must be set to false since class has a member! 
            get { return false; }
        }
    }

是否是2.0 和4.0 有很大的区别吗?asp.net 生命周期应该是一样的啊,如果这个有问题的话,还有没有其他方法可以替代解决此问题呢。请大家多多指教。 

 


posted @ 2012-02-27 11:33 AndyYu 阅读(304) 评论(2) 编辑

2012年1月6日

windows phone app 发布后在市场里找不到呢。

 

 

 

 应用发布成功后,在市场里找不到应用呢。查看链接也是找不到数据呢。

取消隐藏应用成功

现在您的应用程序发布到市场,并提供给广大市民。

 

也没用隐藏应用程序啊。

深链接 
http://windowsphone.com/s?appid=e3a19ca8-f72e-4226-939e-23534e7be79a
 

打开也找不到应用呢。有发布成功经验的告诉请多多指教!

我无论在市场上搜索中文关键词或者英文关键词都没有反应呢。我在发布应用填写的是关键词是中英文的。。

posted @ 2012-01-06 11:32 AndyYu 阅读(713) 评论(6) 编辑

2011年12月27日

APP Hub 应用发布失败,请问大家都是怎么设置可以成功提交哦

Test Process Required:

1. Review the product description of the

application and verify that it is localized to the

target language.

2. Launch the application.

3. Verify that the UI text of the application is

localized to the target language

 

Comments: The application's long description and content are not in the target language, which the application has been
submitted for certification. It is presented in Simplified Chinese instead of English.
For an application to be presented in a different language than it was submitted for, it must satisfy the following
requirements:
1. A statement to indicate the application is not in the targeted language.
2. A full description text in Targeted Market Language.
3. A full description text in native language.
Steps to reproduce:
1.Launch the application

2.Observe Chinese content 

请问大家,如果配置文件按修改成

 

[assembly: NeutralResourcesLanguageAttribute("chinese")]  或 

 

[assembly: NeutralResourcesLanguageAttribute("zh")]

上传就可以了吗,因为UI上肯定是中文,请大家多多指教。 


 

 

 

posted @ 2011-12-27 12:10 AndyYu 阅读(224) 评论(2) 编辑

2011年11月28日

31 Days of Windows Phone | Day #5 System Theming

本文转自jeffblankenbug blog.   http://www.jeffblankenburg.com博客,已每天笔记的形式发表Windows Phone 7 文章.目前JeffblankBug  的Windows Mango 31开发日记 文章已经写到第27天了。由于自己已经看他的博客时很快就看完了,看了以后没有什么感觉,现在用笔记的的形式记录下来,加深影响,加深理解,希望不要看过后就全忘记了。

 

系统主题 

   上一篇我们介绍了手机转换屏幕方向。我们可以根据用户转换方向提供不同的用户界面来使用给用户良好的体验,这篇文章将介绍用户修改手机主题颜色是提供良好的界面用户体验。

Dark and Light Themes

    你可以把手机主题从黑色换成白色,设置相应的的前景色的整个颜色色系,你可以从下图看到同一个应用在不同主题下显示。

      

Accent Color 

     用户可以设置系统颜色色系。Windows Phone 系统提供10 深色和10种颜色色系供选择。这些颜色用户手机系统中,你的应用也可以使用这种色系。颜色列表如下图.

                       

 Think About Default Values

 

 

posted @ 2011-11-28 17:07 AndyYu 阅读(17) 评论(0) 编辑

2011年11月25日

SQL 子查询关联查询和非关联查询 性能分享

今天做在写SQL时候发现有需要优化的SQL 语句,特拿出来和大家 分享一下:

 

查询一 

SELECT  SceneryId
FROM    TableBcst bcst WITH ( NOLOCK )
WHERE   bcst.PayMode = 1
        AND SceneryId NOT IN (
        SELECT  SceneryId
        FROM    TableBcst bcst WITH ( NOLOCK )
        WHERE   bcst.PayMode <> 1 )
 
查询二

SELECT DISTINCT
        bcst1.SceneryId
FROM    TableBcst bcst1 WITH ( NOLOCK )
WHERE   bcst1.PayMode = 1
        AND NOT EXISTS ( SELECT SceneryId
                         FROM   [TableBcst bcst2 WITH ( NOLOCK )
                         WHERE  bcst2.SceneryId = bcst1.SceneryId
                                AND ( bcst2.PayMode > 1
                                      OR bcst2.PayMode < 1
                                    ) )
查询 三
SELECT DISTINCT
        bcst1.SceneryId
FROM    TableBcst bcst1 WITH ( NOLOCK )
WHERE   bcst1.PayMode = 1
        AND bcst1.SceneryId NOT IN (
        SELECT  SceneryId
        FROM    TableBcst bcst2 WITH ( NOLOCK )
        WHERE   bcst2.SceneryId = bcst1.SceneryId
                AND ( bcst2.PayMode > 1
                      OR bcst2.PayMode < 1
                    ))

以上三条语句查询结果是相同的,让我们在看看查询数据库统计结果如下:

前提条件是:如查询一,外查询的数据结果集只有子查询数据结果集的1%

DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
SET STATISTICS IO ON  

SET STATISTICS TIME ON 


统计结果如下:由于本人数据没有权限清除缓存区,所以部分数据不准确。

查询一

 -------------------------------------------------------------------------------------------------      

SQL Server 分析和编译时间: 

 

   CPU 时间 = 12 毫秒,占用时间 = 12 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。

(20 行受影响)
表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
TableBcst '。扫描计数 2,逻辑读取 364 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 '

 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 4 毫秒。

 

查询二 

 ---------------------------------------------------------------------------------------------

 

SQL Server 分析和编译时间: 
   CPU 时间 = 0 毫秒,占用时间 = 8 毫秒。
 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
(20 行受影响)
表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'Tablebcst'。扫描计数 2,逻辑读取 364 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 4 毫秒。

 

查询三

------------------------------------------------------------------------------------------------------------------- 

SQL Server 分析和编译时间: 
   CPU 时间 = 12 毫秒,占用时间 = 12 毫秒。
 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
 SQL Server 执行时间:
   CPU 时间 = 0 毫秒,占用时间 = 0 毫秒。
(20 行受影响)
表 'Worktable'。扫描计数 0,逻辑读取 0 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
表 'TableBcst'。扫描计数 2,逻辑读取 364 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。
 SQL Server 执行时间:
   CPU 时间 = 15 毫秒,占用时间 = 4 毫秒。

看看以上结果,也许有时候理论知识需要和实际情况相比较才能得出结论,在SQL Server 数据库技术内幕中理论也许你看过吧,有时候还是要看具体情况来判断吧。不要被统计结果给蒙骗了,因为数据量少,统计数据准确性不搞,今天下午刚好有空,抽时间和大家分享。


 

posted @ 2011-11-25 14:49 AndyYu 阅读(540) 评论(0) 编辑

31 Days of Windows Phone | Day #4 Device Orientation

本文转自jeffblankenbug blog.   http://www.jeffblankenburg.com博客,已每天笔记的形式发表Windows Phone 7 文章.目前JeffblankBug  的Windows Mango 31开发日记 文章已经写到第24天了。由于自己已经看他的博客时很快就看完了,看了以后没有什么感觉,现在用笔记的的形式记录下来,加深影响,加深理解,希望不要看过后就全忘记了。

   设备的方向控制。

   上一篇介绍了windows phone 手机上回退的硬件按钮。今天我们将介绍手机上的另一硬件元素,手机方向操控。

Portrait  vs  Landscape

   这个并不是很明显的原则。Portrait 是手机竖直方向竖屏显示,LandScape 就是手机横向的横屏显示。每个Windows Phone 手机上都此功能的。一般的应用开始时用竖屏的,而游戏开始的方式是横屏的(因为游戏在款屏上更容易操控).这里只要介绍的是一般应用,怎么改变手机屏蔽方向。

You Default Project Will Be "Portrait-only"

 你创建的默认应用程序,你查看MainPage.xaml头部你会发现有两个属性:

  SupportedOrientations="Portrait" Orientation="Portrait" 

  你可以查看一下SupportedOrientations属性有三个可选择项 

         Portrait(默认)

         LandScape

         Portrait Or Landscape 

   Orientation属性是你应用初始的方向,这个有许多属性值。如果你初始方向是横向的话,SupportedOrientation属性必须支持Landsape选型。Orientataion有如下属性值可写

        Landscape 

        LandscapeLeft 

        LandsapeRight

        Portrait

       PortraitDown

       PortraitUp

   从以上列表可以看出你可以设置应用初始页面时选择竖屏或者横屏。还可以规定初始设置应用的那个方向。

Changing You Orientation 

    有两种方式可以改变你的应用的方向 ,第一种方式就是设置SupportedOrientation 为PortraitOrLandscape,Windows Phone 系统会有默认操作,在许多特殊的情况下是不推荐使用默认操作的。因为有很多情况是不符合手机屏幕系统默认方向切换的。第二种方式是通过代码来实现,具体事例代码如下:

    让我们简单的调用一个计算器功能布局为整个竖屏全屏。如下图:

                  

                   

 你可以很明显的看到在横屏(Landscape)方向是有很多按钮都处于屏幕范围之外。对用户体验不是很好,提升用户体验最简单的方式是,可以隐藏页面标题,还可以重新设置页面按钮的布局,这样做的话对用户使用体验更便捷的,更有意义。而不是是你规定你要改变的细节。这里是我影藏标题栏,重新布局显示页面内容在MainPage.xaml.cs的代码

 

        
public MainPage() 

        {
            InitializeComponent();
            this.OrientationChanged += new EventHandler<OrientationChangedEventArgs>(MainPage_OrientationChanged);
          
        }

        void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
        {
            if ((e.Orientation == PageOrientation.LandscapeRight) || (e.Orientation == PageOrientation.LandscapeLeft))
            {
                TitlePanel.Visibility = Visibility.Collapsed;
            }
            else if ((e.Orientation == PageOrientation.PortraitDown) || (e.Orientation == PageOrientation.PortraitUp))
            {
                TitlePanel.Visibility = Visibility.Visible;
            }

 这里主要介绍介绍的是应用的Landscape 和Portrait,没有具体考虑方向规格。根据两种屏蔽状态来调用屏幕的布局,可以根据不同的方向来设计不同页面的布局。从而显示更好的用户体验。

  从代码代码中可以看到通过创建 

OrientationChanged 事件。这是用简单的方式实现。但是你必须一致使用陀螺仪功能。查看如果添加代码后的页面呈现。

 

                   

 

 

原文地址:http://www.jeffblankenburg.com/2010/10/04/ 

 

 


 

posted @ 2011-11-25 14:10 AndyYu 阅读(47) 评论(0) 编辑

31 Days of Windows Phone | Day #3 The Back Button Paradigm

本文转自jeffblankenbug blog.   http://www.jeffblankenburg.com博客,已每天笔记的形式发表Windows Phone 7 文章.目前JeffblankBug  的Windows Mango 31开发日记 文章已经写到第24天了。由于自己已经看他的博客时很快就看完了,看了以后没有什么感觉,现在用笔记的的形式记录下来,加深影响,加深理解,希望不要看过后就全忘记了。

 

 上一篇介绍了页面之间导航,我们可以简单的调用NavigationService实现不同页面之间跳转。我们有简单的提到返回按钮,在这编文章里将介绍回退按钮复杂功的功能。因为在这里将介绍怎样重新覆盖回退按钮。 

 How The Back Button Work

  回退按钮式怎样工作的。 

  你可以想象一下这里的回退按钮就向浏览器的后退按钮,你能后选择后退返回到你原浏览过的历史页面,你可以返回到多站点的历史页面面,Windows Phone 的回退按钮功能也是相同的,你可以通过后退按钮返回到你以前在同一应用内曾经访问过的页面,还可以返回到其它应用你曾经访问的历史页面。

   例如:

   1、打开联系人功能

   2、从联系人列表中选择“jeffblankenburg”

   3、选择家庭地址,(查看地址在地图应用上的位置)

   4、选择开始按钮

   5、开始玩游戏

   当我们选择后退按钮,可以从列表中倒序向前返回所有的页面。

Overriding The Back Button

  重新覆盖返回按钮功能。

  是的,你可以重新覆盖返回按钮的功能呢。可以禁止返回到历史页面的功能。 

  例如:你需要启动弹出对话框风格的页面,这时候如果不禁用回退按钮,可能会退出应用或返回到你不是你需要的页面,你仅仅只需要关闭弹出对话风格页面而已。

  还有就是你游戏是依赖于及时在线的。这时候就不适合应用回退按钮终止游戏,可以通过回退按钮暂停游戏。以上在执行的时候需要参考如下原则:

  1、你必须考虑后退按钮发生的在某个时间点。

  2、如果用户第二次选择后退按钮,那就应该用默认行为发生。

  3、如果用户选择回退按钮暂停游戏,如果用户第二次选择回退是应该又用户实现回退原因功能,

  一下是禁止回退按钮功能的代码:


protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)

{    
            e.Cancel = true;  

  

} 

下一篇将介绍设备方向。怎样操控竖屏和横屏。

 

  

 

 

 

posted @ 2011-11-25 11:22 AndyYu 阅读(36) 评论(0) 编辑

2011年11月23日

31 Days of Windows Phone | Day #2 Page Navigation

摘要: 本文转自jeffblankenbug blog.http://www.jeffblankenburg.com博客,已每天笔记的形式发表Windows Phone 7 文章.目前JeffblankBug的Windows Mango 31开发日记 文章已经写到第23天了。由于自己已经看他的博客时很快就看完了,看了以后没有什么感觉,现在用笔记的的形式记录下来,加深影响,加深理解,希望不要看过后就全忘记了。今天我们将介绍Windows Phone 7 页面之间导航,这个非常重要有两个原因:1、因为你不想你的应用仅仅只有一个页面。2、第二个原因是因为有如下规则,因为windows phone 手机有后退阅读全文

posted @ 2011-11-23 13:22 AndyYu 阅读(29) 评论(0) 编辑

2011年11月16日

31 Days of Windows Phone | Day #1 project Template

摘要: 本文转自jeffblankenbug blog.http://www.jeffblankenburg.com博客,已每天笔记的形式发表Windows Phone 7 文章.目前JeffblankBug 的Windows Mango 31开发日记 文章已经写到第15天了。由于自己已经看他的博客时很快就看完了,看了以后没有什么感觉,现在用笔记的的形式记录下来,加深影响,加深理解,希望不要看过后就全忘记了。第一天 项目模板在学习Window Phone 7 开发前,首先必具备一些条件,由于Windows Phone UI开发时通过xaml来实现的,所以必须对Silverlight基本的了解。如果你已阅读全文

posted @ 2011-11-16 08:31 AndyYu 阅读(35) 评论(0) 编辑

仅列出标题  下一页

导航

统计

公告