大家好,我们团队现在用开发环境是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 生命周期应该是一样的啊,如果这个有问题的话,还有没有其他方法可以替代解决此问题呢。请大家多多指教。
大家好,我们团队现在用开发环境是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 生命周期应该是一样的啊,如果这个有问题的话,还有没有其他方法可以替代解决此问题呢。请大家多多指教。
应用发布成功后,在市场里找不到应用呢。查看链接也是找不到数据呢。
取消隐藏应用成功
现在您的应用程序发布到市场,并提供给广大市民。
也没用隐藏应用程序啊。
深链接
http://windowsphone.com/s?appid=e3a19ca8-f72e-4226-939e-23534e7be79a
打开也找不到应用呢。有发布成功经验的告诉请多多指教!
我无论在市场上搜索中文关键词或者英文关键词都没有反应呢。我在发布应用填写的是关键词是中英文的。。
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上肯定是中文,请大家多多指教。
本文转自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
今天做在写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 数据库技术内幕中理论也许你看过吧,有时候还是要看具体情况来判断吧。不要被统计结果给蒙骗了,因为数据量少,统计数据准确性不搞,今天下午刚好有空,抽时间和大家分享。
本文转自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的代码
{
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/
本文转自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;
} 下一篇将介绍设备方向。怎样操控竖屏和横屏。
摘要: 本文转自jeffblankenbug blog.http://www.jeffblankenburg.com博客,已每天笔记的形式发表Windows Phone 7 文章.目前JeffblankBug的Windows Mango 31开发日记 文章已经写到第23天了。由于自己已经看他的博客时很快就看完了,看了以后没有什么感觉,现在用笔记的的形式记录下来,加深影响,加深理解,希望不要看过后就全忘记了。今天我们将介绍Windows Phone 7 页面之间导航,这个非常重要有两个原因:1、因为你不想你的应用仅仅只有一个页面。2、第二个原因是因为有如下规则,因为windows phone 手机有后退
阅读全文
摘要: 本文转自jeffblankenbug blog.http://www.jeffblankenburg.com博客,已每天笔记的形式发表Windows Phone 7 文章.目前JeffblankBug 的Windows Mango 31开发日记 文章已经写到第15天了。由于自己已经看他的博客时很快就看完了,看了以后没有什么感觉,现在用笔记的的形式记录下来,加深影响,加深理解,希望不要看过后就全忘记了。第一天 项目模板在学习Window Phone 7 开发前,首先必具备一些条件,由于Windows Phone UI开发时通过xaml来实现的,所以必须对Silverlight基本的了解。如果你已
阅读全文