<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Muhanad YOUNIS : ASP.NET</title><link>http://weblogs.asp.net/muhanadyounis/archive/tags/ASP.NET/default.aspx</link><description>Tags: ASP.NET</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Global Timer (Background Timer)</title><link>http://weblogs.asp.net/muhanadyounis/archive/2009/01/12/global-timer-background-timer.aspx</link><pubDate>Mon, 12 Jan 2009 13:22:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6830665</guid><dc:creator>mohi88</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/rsscomments.aspx?PostID=6830665</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/commentapi.aspx?PostID=6830665</wfw:comment><comments>http://weblogs.asp.net/muhanadyounis/archive/2009/01/12/global-timer-background-timer.aspx#comments</comments><description>&lt;p&gt;Updated on 01.19.2009 &lt;br&gt;&lt;/p&gt;&lt;p&gt;Why do you need a Global Timer ?   &lt;br&gt;There are many reason that you might want to use a global timer for, like pulling data from you database on time periods to prevent user from displaying empty data. I used the global timer to get signed up&amp;nbsp; online users data ( like online user count, cities and assigned rules).&lt;/p&gt;  &lt;p&gt;there are 3 types of timer class in ASP.NET;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx" target="_blank"&gt;System.Timers.Timer&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.timer.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.web.ui.timer.aspx"&gt;System.Web.UI.Timer&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx"&gt;System.Threading.Timer&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Here i will not discus the deference between the above timer class (you may check the links and read msdn about them)but I'll show how to use &lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx"&gt;System.Threading.Timer&lt;/a&gt; to create a background timer.&lt;/p&gt;  &lt;p&gt;the time that I’ll create in this article will be created once and will keep working as long as my web application keep working. If the application stopped for any reason the timer will start again with the application restart.&lt;/p&gt;  &lt;p&gt;First of all create a class that will star Threading.Timer, make sure to create the timer starter method as Static method because we’ll call that method from Global.asax applicathin start method. Make the class as below;&lt;/p&gt;  &lt;p&gt;Add using System.Threading; as reference;&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; TimerStarter&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Timer threadingTimer;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; StartTimer()&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (&lt;span class="kwrd"&gt;null&lt;/span&gt; == threadingTimer)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;            threadingTimer = &lt;span class="kwrd"&gt;new&lt;/span&gt; Timer(&lt;span class="kwrd"&gt;new&lt;/span&gt; TimerCallback(CheckData),&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpContext.Current, 0, 600000);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CheckData(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender)&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="rem"&gt;//ToDo check Data&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Now Let me explain the code above; I declared a threadingTimer but did not initialize it. The main method here is StartTimer; Its a static method. The method checks if the threadingTimer Object is null or not. If its the first time that the method is called the threadingTimer will be null and will be created. line 9 creates and sets the timer object. TimerCallback is the delegate that will be called within timer intervals, here I call CheckData Method. CheckData method must be overloaded to match TimerCallback delegate. HttpContext.Curent is the object that will be used by the callback method; if you do not need any extra information for your method you can pass it as null. the 0 (zero) force the threadingtimer to call CheckData method as soon as the timer is created. You may set any milliseconds you want the timer to wait and call CheckData method. 600000 tells the timer to call CheckData method every 10 min. Call your timer from Global.asax as below;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;    &lt;span class="kwrd"&gt;void&lt;/span&gt; Application_Start(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        TimerStarter.StartTimer();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    }&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;UPDATE : When your background thread throw and exception the working process will shout down! and IIS will recycle and start again so be careful.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;That is all!&lt;/p&gt;

&lt;p&gt;You may use &lt;a href="http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx" mce_href="http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx" target="_blank"&gt;System.Timers.Timer&lt;/a&gt; in a deferent way to achieve the same goal. Check MSDN for more details.&lt;/p&gt;

&lt;p&gt;Hope this Helps&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6830665" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/Tips+_2600_amp_3B00_+Tricks/default.aspx">Tips &amp;amp; Tricks</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/threading/default.aspx">threading</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/Timer/default.aspx">Timer</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/Global+Timer/default.aspx">Global Timer</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/Global_2E00_asax/default.aspx">Global.asax</category></item><item><title>ScriptManager and MasterPage PageMethods !</title><link>http://weblogs.asp.net/muhanadyounis/archive/2008/12/30/scriptmanager-and-masterpage-pagemethods.aspx</link><pubDate>Tue, 30 Dec 2008 20:23:43 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6809149</guid><dc:creator>mohi88</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/rsscomments.aspx?PostID=6809149</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/commentapi.aspx?PostID=6809149</wfw:comment><comments>http://weblogs.asp.net/muhanadyounis/archive/2008/12/30/scriptmanager-and-masterpage-pagemethods.aspx#comments</comments><description>&lt;p&gt;I know that this subject has been asked many times therefore i would like to summarize it and give a small tutorial about how to do it.&lt;/p&gt; &lt;p&gt;I had some PageMethods on a default page which calls some web methods on code behind of the page. Before 1 week we decided to change the old structure of the project UI to use MasterPage. MaterPage triggered many problems with it, one of these problems that MasterPage does not support JS PageMethods! because MasterPage does not inherit from Web.UI.Page therefore you can not call PageMethods (its not a page!) – you can not call pagemethods on usercontrols too – so handle this problem and call your methods you can try this tutorial;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Create a MasterPage and add a ScriptManager on page.  &lt;li&gt;On ScriptManager add the folowings &lt;br&gt; &lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&amp;lt;asp:ScriptManager ID=&lt;span class="str"&gt;"ScriptManager"&lt;/span&gt; runat=&lt;span class="str"&gt;"server"&lt;/span&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EnableScriptGlobalization=&lt;span class="str"&gt;"true"&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        LoadScriptsBeforeUI=&lt;span class="str"&gt;"true"&lt;/span&gt; &lt;br&gt;                         EnableScriptLocalization=&lt;span class="str"&gt;"true"&lt;/span&gt; &lt;br&gt;                         EnablePageMethods=&lt;span class="str"&gt;"true"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;       &amp;lt;Scripts&amp;gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            &amp;lt;asp:ScriptReference &lt;br&gt;                      Path=&lt;span class="str"&gt;"~/Javascript/MasterPageWSJS.js"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        &amp;lt;/Scripts&amp;gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        &amp;lt;Services&amp;gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            &amp;lt;asp:ServiceReference &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Path=&lt;span class="str"&gt;"~/WebServices/MasterPageWS.asmx"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        &amp;lt;/Services&amp;gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    &amp;lt;/asp:ScriptManager&amp;gt;&lt;/pre&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Here we have 2 important sections &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Scritps which includes our JS file location &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Sevices which includes our Webservices location &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Here to be mentioned that EnablePageMethods attribute means nothing on MasterPages!.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add a javascript file to the project ( here its&amp;nbsp; MasterPageWSJS.js) &lt;br&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;function&lt;/span&gt; CallService() {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="rem"&gt;//CallFromMasterJS() is the name of the service method&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;          MasterPageWS.CallFromMasterJS();&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;  }&lt;/pre&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add a Webservice file to the project (here it is MasterPageWS.asmx) &lt;br&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&amp;lt;%@ WebService Language=&lt;span class="str"&gt;"C#"&lt;/span&gt; Class=&lt;span class="str"&gt;"MasterPageWS"&lt;/span&gt; %&amp;gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.Services;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.Services.Protocols;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web.Script.Services;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;[WebService(Namespace = &lt;span class="str"&gt;"http://tempuri.org/"&lt;/span&gt;)]&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;[ScriptService]&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MasterPageWS : System.Web.Services.WebService&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    [WebMethod(EnableSession = &lt;span class="kwrd"&gt;true&lt;/span&gt;)]&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CallFromMasterJS()&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    {&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt; &lt;span class="rem"&gt;// todo: write the needed codes&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    }&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p class="csharpcode"&gt;&lt;/p&gt;&lt;pre&gt;      &lt;/pre&gt;
&lt;p&gt;Here some important notes about the service:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;- decorate the service class with [ScriptService]&lt;/p&gt;
&lt;p&gt;- Decorate your methods with [WebMethod] add if you want to use &lt;/p&gt;
&lt;p&gt;session variables with it decorate it with &lt;/p&gt;
&lt;p&gt;[WebMethod(EnableSession = &lt;span class="kwrd"&gt;true&lt;/span&gt;)] because webservices are&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;stateless by default&lt;/p&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;at the end add this code lines to your MasterPage codebehind:&lt;br&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt;(!IsPostBack)&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  // masterBody is the ID of the masterpage body html tag&lt;/span&gt;       &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HtmlGenericControl body = &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (HtmlGenericControl)Page.Master.FindControl(&lt;span class="str"&gt;"masterBody"&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        body.Attributes.Add(&lt;span class="str"&gt;"onunload"&lt;/span&gt;, &lt;span class="str"&gt;"CallService();"&lt;/span&gt;);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;That is all !. when you start your page and refresh it the master page will unloaded and that will fire the event &lt;u&gt;onunload&lt;/u&gt; on the page body which will call the JS and from there the web service will be called.&lt;/p&gt;
&lt;p&gt;Hope this helps&lt;/p&gt;
&lt;p&gt;this tutorial based on &lt;a href="http://www.asp.net/AJAX/Documentation/Live/Tutorials/ConsumingWebServicesWithAJAXTutorial.aspx" target="_blank"&gt;Calling Web Services from Client Script in ASP.NET AJAX&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;/ul&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6809149" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/.NET+2.0/default.aspx">.NET 2.0</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/ScriptService/default.aspx">ScriptService</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/PageMethods/default.aspx">PageMethods</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/MasterPage/default.aspx">MasterPage</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/WebService/default.aspx">WebService</category></item><item><title>Publish Server Performance Monitors with MsChart</title><link>http://weblogs.asp.net/muhanadyounis/archive/2008/12/17/publish-server-performance-monitors-with-mschart.aspx</link><pubDate>Wed, 17 Dec 2008 10:30:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6792475</guid><dc:creator>mohi88</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/rsscomments.aspx?PostID=6792475</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/commentapi.aspx?PostID=6792475</wfw:comment><comments>http://weblogs.asp.net/muhanadyounis/archive/2008/12/17/publish-server-performance-monitors-with-mschart.aspx#comments</comments><description>
&lt;p&gt;In this article I'll try to show you how to to use &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;DisplayLang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;DisplayLang=en" target="_blank"&gt;MsChart Controls&lt;/a&gt; with ajax update panel to publish your server performance counter variables.&lt;/p&gt;

&lt;p&gt;Be sure to install these packages before your start;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;DisplayLang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;DisplayLang=en" target="_blank"&gt;MsChart Controls&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&amp;amp;displaylang=en" target="_blank"&gt;Chart Controls Add-on for visual studio 2008&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MsChart Controls are free and new, I used to use owc 11 and later versions to achieve needed works on projects. &lt;/p&gt;

&lt;p&gt;After you install these packages goon and create a new website in your visual studio. On vs2008 toolbox you’ll find some new controls which installed with MsChart package. You’ll find chart control under data tab. First add a ajax script manager and an update panel to your page. Inside the update panel drop a timer and set its interval to 3000 milliseconds (3 seconds). Drag and drop a chart control for toolbox to your update panel content section. You will have a chart section looks like below;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Chart&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="Chart2"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Series&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Series&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="Series1"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Series&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Series&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ChartAreas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ChartArea&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="ChartArea1"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ChartArea&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ChartAreas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Chart&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Here you can see that the chart control have got to main section Series and ChartArea, I’ll not discus these two section widely; you may have more information about chart control and its section from &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=EE8F6F35-B087-4324-9DBA-6DD5E844FD9F&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=EE8F6F35-B087-4324-9DBA-6DD5E844FD9F&amp;amp;displaylang=en" target="_blank"&gt;Microsoft Chart Controls for .NET Framework Documentation&lt;/a&gt;. the series section is related with graph it self and the chartarea section is related with chart area that will hold hold the drawn graph. In my project I configured chart section as below;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;div class="csharpcode"&gt;
    &lt;pre class="alt"&gt;&lt;p&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Chart&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="Chart1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="592px"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="412px"&lt;/span&gt; &lt;br&gt;&lt;span class="attr"&gt;ImageUrl&lt;/span&gt;&lt;span class="kwrd"&gt;="~/TempImages/ChartPic_#SEQ(300,3)"&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="attr"&gt;BackColor&lt;/span&gt;&lt;span class="kwrd"&gt;="#D3DFF0"&lt;/span&gt; &lt;span class="attr"&gt;BorderLineStyle&lt;/span&gt;&lt;span class="kwrd"&gt;="Solid"&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="attr"&gt;BackGradientEndColor&lt;/span&gt;&lt;span class="kwrd"&gt;="White"&lt;/span&gt; &lt;span class="attr"&gt;BackGradientType&lt;/span&gt;&lt;span class="kwrd"&gt;="TopBottom"&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="attr"&gt;BorderlineColor&lt;/span&gt;&lt;span class="kwrd"&gt;="DarkGray"&lt;/span&gt; &lt;span class="attr"&gt;EnableViewState&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="attr"&gt;BackImageTransparentColor&lt;/span&gt;&lt;span class="kwrd"&gt;="White"&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="attr"&gt;BackSecondaryColor&lt;/span&gt;&lt;span class="kwrd"&gt;="White"&lt;/span&gt; &lt;span class="attr"&gt;BorderlineDashStyle&lt;/span&gt;&lt;span class="kwrd"&gt;="Solid"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;/div&gt;
  &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Do not change ImageUrl location!.&lt;/p&gt;

&lt;p&gt;for Series;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Series&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Series&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="MySeries"&lt;/span&gt; &lt;span class="attr"&gt;XValueType&lt;/span&gt;&lt;span class="kwrd"&gt;="Double"&lt;/span&gt; &lt;span class="attr"&gt;ChartType&lt;/span&gt;&lt;span class="kwrd"&gt;="Spline"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="attr"&gt;BorderColor&lt;/span&gt;&lt;span class="kwrd"&gt;="180, 26, 59, 105"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="attr"&gt;YValueType&lt;/span&gt;&lt;span class="kwrd"&gt;="Double"&lt;/span&gt; &lt;span class="attr"&gt;BorderWidth&lt;/span&gt;&lt;span class="kwrd"&gt;="2"&lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="attr"&gt;ShadowColor&lt;/span&gt;&lt;span class="kwrd"&gt;="254, 0, 0, 0"&lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="attr"&gt;ShadowOffset&lt;/span&gt;&lt;span class="kwrd"&gt;="1"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;span class="attr"&gt;ChartArea&lt;/span&gt;&lt;span class="kwrd"&gt;="MyChartArea"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Points&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:DataPoint&lt;/span&gt; &lt;span class="attr"&gt;XValue&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt; &lt;span class="attr"&gt;YValues&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Points&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Series&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Series&lt;/span&gt; &lt;span class="attr"&gt;XValueType&lt;/span&gt;&lt;span class="kwrd"&gt;="Double"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="Exceps Thrown"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt; &lt;span class="attr"&gt;ChartType&lt;/span&gt;&lt;span class="kwrd"&gt;="Spline"&lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="attr"&gt;BorderColor&lt;/span&gt;&lt;span class="kwrd"&gt;="180, 26, 59, 105"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="attr"&gt;YValueType&lt;/span&gt;&lt;span class="kwrd"&gt;="Double"&lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="attr"&gt;BorderWidth&lt;/span&gt;&lt;span class="kwrd"&gt;="2"&lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="attr"&gt;ShadowColor&lt;/span&gt;&lt;span class="kwrd"&gt;="254, 0, 0, 0"&lt;/span&gt; &lt;span class="attr"&gt;ShadowOffset&lt;/span&gt;&lt;span class="kwrd"&gt;="1"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="attr"&gt;ChartArea&lt;/span&gt;&lt;span class="kwrd"&gt;="Default"&lt;/span&gt; &lt;span class="attr"&gt;IsVisibleInLegend&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Points&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:DataPoint&lt;/span&gt; &lt;span class="attr"&gt;XValue&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt; &lt;span class="attr"&gt;YValues&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Points&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Series&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Series&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Here I used 2 series which mean that I’ll have to graphs in my chart. You can see that I used two different&amp;nbsp; &lt;u&gt;chartareas&lt;/u&gt; that is because I’ll use two chart areas on the same chart control.There many &lt;u&gt;charttypes&lt;/u&gt; that you can select depending on your project demands, in my example it choose &lt;u&gt;Spline&lt;/u&gt;. Beside that I added a Points section which will give the graph a starting position ( in static chart and charts with out code behind you can add many datapoints to draw the graph needed). &lt;/p&gt;

&lt;p&gt;and for Chart Area;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ChartAreas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ChartArea&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="Default"&lt;/span&gt; &lt;span class="attr"&gt;BorderColor&lt;/span&gt;&lt;span class="kwrd"&gt;="64, 64, 64, 64"&lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="attr"&gt;BorderDashStyle&lt;/span&gt;&lt;span class="kwrd"&gt;="Solid"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;     &lt;span class="attr"&gt;BackSecondaryColor&lt;/span&gt;&lt;span class="kwrd"&gt;="White"&lt;/span&gt; &lt;span class="attr"&gt;BackColor&lt;/span&gt;&lt;span class="kwrd"&gt;="64, 165, 191, 228"&lt;/span&gt; &lt;br&gt;&lt;span class="attr"&gt;ShadowColor&lt;/span&gt;&lt;span class="kwrd"&gt;="Transparent"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;     &lt;span class="attr"&gt;BackGradientStyle&lt;/span&gt;&lt;span class="kwrd"&gt;="TopBottom"&lt;/span&gt; &lt;span class="attr"&gt;Area3DStyle-Enable3D&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;br&gt;&lt;span class="attr"&gt;Area3DStyle-PointDepth&lt;/span&gt;&lt;span class="kwrd"&gt;="1000"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;      &lt;span class="attr"&gt;Area3DStyle-PointGapDepth&lt;/span&gt;&lt;span class="kwrd"&gt;="200"&lt;/span&gt; &lt;span class="attr"&gt;AlignmentOrientation&lt;/span&gt;&lt;span class="kwrd"&gt;="Horizontal"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Position&lt;/span&gt; &lt;span class="attr"&gt;Y&lt;/span&gt;&lt;span class="kwrd"&gt;="5"&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="50"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="94"&lt;/span&gt; &lt;span class="attr"&gt;X&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Position&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;AxisY&lt;/span&gt; &lt;span class="attr"&gt;LineColor&lt;/span&gt;&lt;span class="kwrd"&gt;="64, 64, 64, 64"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MajorGrid&lt;/span&gt; &lt;span class="attr"&gt;LineColor&lt;/span&gt;&lt;span class="kwrd"&gt;="64, 64, 64, 64"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;MajorGrid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;blockquote&gt;&lt;p&gt;               &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;LabelStyle&lt;/span&gt; &lt;span class="attr"&gt;Font&lt;/span&gt;&lt;span class="kwrd"&gt;="Trebuchet MS, 8.25pt, style=Bold"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br&gt;                  &amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;LabelStyle&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/pre&gt;

  &lt;pre&gt;                            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;AxisY&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;blockquote&gt;&lt;p&gt;                            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;AxisX&lt;/span&gt; &lt;span class="attr"&gt;LineColor&lt;/span&gt;&lt;span class="kwrd"&gt;="64, 64, 64, 64"&lt;/span&gt; &lt;br&gt;&lt;span class="attr"&gt;IsMarginVisible&lt;/span&gt;&lt;span class="kwrd"&gt;="False"&lt;/span&gt; &lt;span class="attr"&gt;Maximum&lt;/span&gt;&lt;span class="kwrd"&gt;="100"&lt;/span&gt; &lt;span class="attr"&gt;Minimum&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/pre&gt;

  &lt;pre&gt;                                &lt;span class="attr"&gt;IsStartedFromZero&lt;/span&gt;&lt;span class="kwrd"&gt;="False"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MajorGrid&lt;/span&gt; &lt;span class="attr"&gt;LineColor&lt;/span&gt;&lt;span class="kwrd"&gt;="64, 64, 64, 64"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;MajorGrid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;LabelStyle&lt;/span&gt; &lt;span class="attr"&gt;Font&lt;/span&gt;&lt;span class="kwrd"&gt;="Trebuchet MS, 8.25pt, &lt;br&gt;style=Bold"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;LabelStyle&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;AxisX&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ChartArea&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;   &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ChartArea&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="MyChartArea"&lt;/span&gt; &lt;span class="attr"&gt;BorderColor&lt;/span&gt;&lt;span class="kwrd"&gt;="64, 64, 64, 64"&lt;/span&gt; &lt;br&gt;&lt;span class="attr"&gt;BorderDashStyle&lt;/span&gt;&lt;span class="kwrd"&gt;="Solid"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;       &lt;span class="attr"&gt;BackSecondaryColor&lt;/span&gt;&lt;span class="kwrd"&gt;="White"&lt;/span&gt; &lt;span class="attr"&gt;BackColor&lt;/span&gt;&lt;span class="kwrd"&gt;="64, 165, 191, 228"&lt;/span&gt; &lt;span class="attr"&gt;&lt;br&gt;ShadowColor&lt;/span&gt;&lt;span class="kwrd"&gt;="Transparent"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;       &lt;span class="attr"&gt;BackGradientStyle&lt;/span&gt;&lt;span class="kwrd"&gt;="TopBottom"&lt;/span&gt; &lt;span class="attr"&gt;Area3DStyle-Enable3D&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;br&gt;&lt;span class="attr"&gt;Area3DStyle-PointDepth&lt;/span&gt;&lt;span class="kwrd"&gt;="1000"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;       &lt;span class="attr"&gt;Area3DStyle-PointGapDepth&lt;/span&gt;&lt;span class="kwrd"&gt;="200"&lt;/span&gt; &lt;span class="attr"&gt;AlignmentOrientation&lt;/span&gt;&lt;span class="kwrd"&gt;="Horizontal"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;              &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Position&lt;/span&gt; &lt;span class="attr"&gt;Y&lt;/span&gt;&lt;span class="kwrd"&gt;="50"&lt;/span&gt; &lt;span class="attr"&gt;Height&lt;/span&gt;&lt;span class="kwrd"&gt;="45"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="94"&lt;/span&gt; &lt;span class="attr"&gt;X&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Position&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Area3DStyle&lt;/span&gt; &lt;span class="attr"&gt;Enable3D&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;PointDepth&lt;/span&gt;&lt;span class="kwrd"&gt;="1000"&lt;br&gt;&lt;/span&gt; &lt;span class="attr"&gt;PointGapDepth&lt;/span&gt;&lt;span class="kwrd"&gt;="200"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;AxisY&lt;/span&gt; &lt;span class="attr"&gt;LineColor&lt;/span&gt;&lt;span class="kwrd"&gt;="64, 64, 64, 64"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MajorGrid&lt;/span&gt; &lt;span class="attr"&gt;LineColor&lt;/span&gt;&lt;span class="kwrd"&gt;="64, 64, 64, 64"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;MajorGrid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;LabelStyle&lt;/span&gt; &lt;span class="attr"&gt;Font&lt;/span&gt;&lt;span class="kwrd"&gt;="Trebuchet MS, 8.25pt, &lt;br&gt;style=Bold"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;LabelStyle&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;AxisY&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;AxisX&lt;/span&gt; &lt;span class="attr"&gt;LineColor&lt;/span&gt;&lt;span class="kwrd"&gt;="64, 64, 64, 64"&lt;/span&gt; &lt;br&gt;&lt;span class="attr"&gt;IsMarginVisible&lt;/span&gt;&lt;span class="kwrd"&gt;="False"&lt;/span&gt; &lt;span class="attr"&gt;Maximum&lt;/span&gt;&lt;span class="kwrd"&gt;="100"&lt;/span&gt; &lt;span class="attr"&gt;Minimum&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                                &lt;span class="attr"&gt;IsStartedFromZero&lt;/span&gt;&lt;span class="kwrd"&gt;="False"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MajorGrid&lt;/span&gt; &lt;span class="attr"&gt;LineColor&lt;/span&gt;&lt;span class="kwrd"&gt;="64, 64, 64, 64"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;MajorGrid&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;LabelStyle&lt;/span&gt; &lt;span class="attr"&gt;Font&lt;/span&gt;&lt;span class="kwrd"&gt;="Trebuchet MS, 8.25pt, &lt;br&gt;style=Bold"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;LabelStyle&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;AxisX&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;                        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ChartArea&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;                    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ChartAreas&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Points of intrest in ChartAreas are Position, AxisX and AxisY section. In position section you give the locations of your chartarea over the chart control it self. Since I have two chartareas I replaced them under each other. AxisX and AxisY are used to configure your graph axes; even if you don’t configure this section you can still use your chart but you’ll have some graphical problems until you data is sent to chart and display start. after all that configuration the chart control will look as below ( you may download the project from the link in the bottom of the article )&lt;/p&gt;

&lt;p&gt;&lt;img src="http://weblogs.asp.net/blogs/muhanadyounis/Mschart/MainLook.JPG" mce_src="http://weblogs.asp.net/blogs/muhanadyounis/Mschart/MainLook.JPG" width="216" height="312"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;

&lt;p&gt;Now let us go to code behind and see how to send our performance monitors values to chart.&lt;/p&gt;

&lt;p&gt;on Timer tick event I replaced 2 methods; the first one will set the performance monitors and the other will fill the chart as below;
  &lt;br&gt;(Do not forget to add using System.Web.UI.DataVisualization as a reference)

  &lt;br&gt;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Unnamed1_Tick(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            StartMonitor();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            ChartCondfig();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;         }&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;for StartMonitor method;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; StartMonitor()&lt;/pre&gt;

  &lt;pre&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;

  &lt;pre&gt;   pc1 = &lt;span class="kwrd"&gt;new&lt;/span&gt; PerformanceCounter(&lt;span class="str"&gt;".NET CLR Exceptions"&lt;/span&gt;, &lt;span class="str"&gt;"# of Exceps Thrown"&lt;/span&gt;, &lt;br&gt;         &lt;span class="str"&gt;"_Global_"&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;  &lt;span class="rem"&gt;// get the current value&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;  &lt;span class="kwrd"&gt;float&lt;/span&gt; dResult1 = pc1.NextValue();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;

  &lt;pre&gt;  pc2 = &lt;span class="kwrd"&gt;new&lt;/span&gt; PerformanceCounter(&lt;span class="str"&gt;"ASP.NET"&lt;/span&gt;, &lt;span class="str"&gt;"Application Restarts"&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;   &lt;span class="kwrd"&gt;float&lt;/span&gt; dResult2 = pc2.NextValue();&lt;/pre&gt;

  &lt;pre&gt;&amp;nbsp;&lt;/pre&gt;

  &lt;pre class="alt"&gt;  pc3 = &lt;span class="kwrd"&gt;new&lt;/span&gt; PerformanceCounter(&lt;span class="str"&gt;"ASP.NET"&lt;/span&gt;, &lt;span class="str"&gt;"Requests Current"&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt; &lt;span class="kwrd"&gt;float&lt;/span&gt; dResult3 = pc3.NextValue();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;

  &lt;pre&gt;   pc4 = &lt;span class="kwrd"&gt;new&lt;/span&gt; PerformanceCounter(&lt;span class="str"&gt;"ASP.NET"&lt;/span&gt;, &lt;span class="str"&gt;"Requests Queued"&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;   &lt;span class="kwrd"&gt;float&lt;/span&gt; dResult4 = pc4.NextValue();&lt;/pre&gt;

  &lt;pre&gt;&amp;nbsp;&lt;/pre&gt;

  &lt;pre class="alt"&gt;   pc5 = &lt;span class="kwrd"&gt;new&lt;/span&gt; PerformanceCounter(&lt;span class="str"&gt;"ASP.NET"&lt;/span&gt;, &lt;span class="str"&gt;"Worker Process Restarts"&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;   &lt;span class="kwrd"&gt;float&lt;/span&gt; dResult5 = pc5.NextValue();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;

  &lt;pre&gt;  pc6 = &lt;span class="kwrd"&gt;new&lt;/span&gt; PerformanceCounter(&lt;span class="str"&gt;"ASP.NET"&lt;/span&gt;, &lt;span class="str"&gt;"Request Execution Time"&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;  &lt;span class="kwrd"&gt;float&lt;/span&gt; dResult6 = pc6.NextValue();&lt;/pre&gt;

  &lt;pre&gt;&amp;nbsp;&lt;/pre&gt;

  &lt;pre class="alt"&gt;   pc10 = &lt;span class="kwrd"&gt;new&lt;/span&gt; PerformanceCounter(&lt;span class="str"&gt;"Memory"&lt;/span&gt;, &lt;span class="str"&gt;"Available MBytes"&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;  &lt;span class="kwrd"&gt;float&lt;/span&gt; dResult10 = pc10.NextValue();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&amp;nbsp;&lt;/pre&gt;

  &lt;pre&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;/div&gt;





&lt;p&gt; Here pc1 – 10 are declared on page load. and you can add much performance counter as you want. In this example I selected pc1 and 10 to be shown in the graph.&lt;/p&gt;

&lt;div class="csharpcode"&gt;

  

  &lt;p&gt;For ChartCondfig method; (sorry the code is not well formatted)&lt;/p&gt;

  &lt;pre&gt;&amp;nbsp;&lt;/pre&gt;

  &lt;pre&gt;&amp;nbsp;&lt;/pre&gt;

  &lt;div class="csharpcode"&gt;
    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; ChartCondfig()&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        {&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            &lt;span class="kwrd"&gt;double&lt;/span&gt; lastXValue =&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;         &lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.Series[0].Points[&lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.Series[0]&lt;br&gt;                  .Points.Count - 1].XValue + 1;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.Series[0].Points.AddXY(lastXValue++, &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Convert.ToDouble(pc1.NextValue()));&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            &lt;span class="kwrd"&gt;double&lt;/span&gt; lastXValue1 = &lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.Series[&lt;span class="str"&gt;"MySeries"&lt;/span&gt;]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Points[&lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.Series[&lt;span class="str"&gt;"MySeries"&lt;/span&gt;].Points.Count - 1].XValue + 1;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.Series[1].Points.AddXY(lastXValue1++, &lt;br&gt;          Convert.ToDouble(pc10.NextValue()));&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="rem"&gt;// Adjust categorical scale&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            &lt;span class="kwrd"&gt;double&lt;/span&gt; axisMinimum = &lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.Series[0]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Points[0].XValue;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.ChartAreas[0].AxisX.Minimum = axisMinimum;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.ChartAreas[0].AxisX.Maximum =&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; axisMinimum + 100;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.ChartAreas[1].AxisX.Minimum = axisMinimum;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.ChartAreas[1].AxisX.Maximum =&lt;br&gt;                                                 axisMinimum + 100;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            &lt;span class="rem"&gt;// Remove points from the left chart side if number of &lt;br&gt;                   points exceeds 100.&lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            &lt;span class="kwrd"&gt;while&lt;/span&gt; (&lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.Series[0].Points.Count &amp;gt; 100)&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            {&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;                &lt;span class="rem"&gt;// Remove series points&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (Series series &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.Series)&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;                {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;                    series.Points.RemoveAt(0);&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;                }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;            }&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;        }&lt;/pre&gt;
  &lt;/div&gt;
  &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;on line 3 a double value named lastXvalue is declared this variable will hold the last point position over the X axes. on line 5 our first series on the chart will add a new point on X axes and Y axes.For X axes ,increasing&amp;nbsp; lastXvalue variable will be enough and for Y axes point performance monitor current value is given.&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;this&lt;/span&gt;.Chart1.Series[0].Points.AddXY(lastXValue++, &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Convert.ToDouble(pc1.NextValue()));&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Adjusting the categorical scale of the chartarea is important; otherwise win your lastXValue reaches the end of the scale you’ll have a problem, there for on line 16 we tell the chart to extend the scale. From line 19 to 26 I removed the points from series after the left side of the chart exceeds 100.&lt;/p&gt;

&lt;p&gt;If you are debugging your project you well receive no exception but on runtime a small exception will rise; your application will look for a folder named TempImageFiles; goon and create this folder on the location shown in the exception and your application will run.&lt;/p&gt;

&lt;p&gt;When you run the project you’ll have your chart as below;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://weblogs.asp.net/blogs/muhanadyounis/Mschart/MschartOnwork.JPG" mce_src="http://weblogs.asp.net/blogs/muhanadyounis/Mschart/MschartOnwork.JPG" width="243" height="359"&gt; &lt;/p&gt;

&lt;p&gt;To make with example work on your server and other computers you need to install the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;DisplayLang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;DisplayLang=en" target="_blank"&gt;Download the free Microsoft Chart Controls&lt;/a&gt; package.&lt;/p&gt;

&lt;p&gt;That's all. In this article I tried to explain how to use MsChart to publish you server performance monitoring values. You can change and play around with charttypes and do many other nice works with that.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/muhanadyounis/Mschart/PerfMsChart.zip" mce_href="http://weblogs.asp.net/blogs/muhanadyounis/Mschart/PerfMsChart.zip" target="_blank"&gt;Download the sample project from here&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;For more information about MsChart you can check these links;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;DisplayLang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;DisplayLang=en" target="_blank"&gt;Download the free Microsoft Chart Controls&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&amp;amp;displaylang=en" target="_blank"&gt;Download the VS 2008 Tool Support for the Chart Controls&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591" mce_href="http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591" target="_blank"&gt;Download the Microsoft Chart Controls Samples&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EE8F6F35-B087-4324-9DBA-6DD5E844FD9F&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EE8F6F35-B087-4324-9DBA-6DD5E844FD9F&amp;amp;displaylang=en" target="_blank"&gt;Download the Microsoft Chart Controls Documentation&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/threads/" mce_href="http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/threads/" target="_blank"&gt;Visit the Microsoft Chart Control Forum&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article is based on &lt;a href="http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591" mce_href="http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591" target="_blank"&gt;Microsoft Chart Controls Web Samples&lt;/a&gt; project ajax section.&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6792475" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/ChartArea/default.aspx">ChartArea</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/ChartType/default.aspx">ChartType</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/Performance+Counters/default.aspx">Performance Counters</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/MsChart/default.aspx">MsChart</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/Graphics/default.aspx">Graphics</category></item><item><title>WRN: Assembly binding logging turned off</title><link>http://weblogs.asp.net/muhanadyounis/archive/2008/11/08/wrn-assembly-binding-logging-turned-off.aspx</link><pubDate>Sat, 08 Nov 2008 11:25:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6726492</guid><dc:creator>mohi88</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/rsscomments.aspx?PostID=6726492</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/commentapi.aspx?PostID=6726492</wfw:comment><comments>http://weblogs.asp.net/muhanadyounis/archive/2008/11/08/wrn-assembly-binding-logging-turned-off.aspx#comments</comments><description>
&lt;p style="font-weight: bold;"&gt;&amp;nbsp;&lt;span style="font-weight: normal;"&gt;I started to received this error since yesterday and after i add an
assembly reflection to retrieve the assembly version. Interesting thing
that when the application is deployed to IIS it starts to work fine!
but after some time i started to receive this error "WRN: Assembly
binding logging turned off", my reflected assembly can not be found!
WHAT!!!!! just before 10 sec it was working!!. I debugged my codes and
find out that there is nothing wrong, after that i decided to clean all
asp.net temp files on the iis server and restart iis again.But before i
restart iis i recopied the "Lost DLL" ( which it was not lost) to my
application bin folder and yuppie its working again. in my situation it
usually takes about 30 min to lose the dll :D, 1 hour passed and
nothing
happened until now.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Update :&lt;/b&gt;&amp;nbsp; I used ildasm tool to find out what happens to my assembly after build. I found out that the assembly is built with a different&amp;nbsp; Culture!&amp;nbsp; normally on development no culture assigned to the assembly but after that when CCNET build the application a new culture is assigned!. that made other assemblies do not find the refrance of the wanted assembly!. &lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;hope this helps &lt;/span&gt;&lt;br&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6726492" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/Assembly/default.aspx">Assembly</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/reflection/default.aspx">reflection</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/IIs/default.aspx">IIs</category></item><item><title>Log Off OWA from Code Behind</title><link>http://weblogs.asp.net/muhanadyounis/archive/2008/10/16/log-off-owa-from-code-behind.aspx</link><pubDate>Thu, 16 Oct 2008 16:56:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6683131</guid><dc:creator>mohi88</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/rsscomments.aspx?PostID=6683131</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/commentapi.aspx?PostID=6683131</wfw:comment><comments>http://weblogs.asp.net/muhanadyounis/archive/2008/10/16/log-off-owa-from-code-behind.aspx#comments</comments><description>
&lt;p style="font-weight: bold;"&gt;&amp;nbsp;After many tries and havey googling to find out the best way to log off OWA from asp.net page code behind while logging out from my main application, i found out that this can be achieved in one way ( in my position). Rise a small popup window and call OWA log out page! &lt;/p&gt;&lt;p style="font-weight: bold;"&gt;All done with a small javascript. the script is below ;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&amp;nbsp;private void LogoffOwa()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string popupScript = "&amp;lt;script language='javascript'&amp;gt;" +&lt;br&gt;&amp;nbsp;&amp;nbsp; "var mywindow=window.open('https://OWA_SERVER_Adress/owa/auth/logoff.aspx?Cmd=logoff', 'CustomPopUp', " +&lt;br&gt;&amp;nbsp;&amp;nbsp; "'width=1, height=1, menubar=no, resizable=no');" +&lt;br&gt;&amp;nbsp;&amp;nbsp; "setTimeout(\"mywindow.close();\",3000);" +&lt;br&gt;&amp;nbsp;&amp;nbsp; "&amp;lt;/script&amp;gt;";&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(popupScript);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/p&gt;&lt;p style="font-weight: bold;"&gt;in the script you have to set the time out of the window. Do not close the window directly or you will not log off. Just give it some time to open the log off page.&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;Hope this helps &lt;br&gt;&lt;/p&gt;
&lt;p style="font-weight: bold;"&gt;&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6683131" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/Exchange/default.aspx">Exchange</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/OWA/default.aspx">OWA</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/JavaScript/default.aspx">JavaScript</category></item><item><title>Access OWA with C# inside Asp.net Site</title><link>http://weblogs.asp.net/muhanadyounis/archive/2008/10/12/open-owa-with-c-inside-asp-net-site.aspx</link><pubDate>Sun, 12 Oct 2008 08:10:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6674349</guid><dc:creator>mohi88</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/rsscomments.aspx?PostID=6674349</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/commentapi.aspx?PostID=6674349</wfw:comment><comments>http://weblogs.asp.net/muhanadyounis/archive/2008/10/12/open-owa-with-c-inside-asp-net-site.aspx#comments</comments><description>&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Ca%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" mce_href="file:///C:%5CDOCUME%7E1%5Ca%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Ca%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" mce_href="file:///C:%5CDOCUME%7E1%5Ca%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Ca%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" mce_href="file:///C:%5CDOCUME%7E1%5Ca%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:DontVertAlignCellWithSp/&gt;
   &lt;w:DontBreakConstrainedForcedTables/&gt;
   &lt;w:DontVertAlignInTxbx/&gt;
   &lt;w:Word11KerningPairs/&gt;
   &lt;w:CachedColBalance/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="--&gt;
   &lt;m:smallfrac m:val="off"&gt;
   &lt;m:dispdef&gt;
   &lt;m:lmargin m:val="0"&gt;
   &lt;m:rmargin m:val="0"&gt;
   &lt;m:defjc m:val="centerGroup"&gt;
   &lt;m:wrapindent m:val="1440"&gt;
   &lt;m:intlim m:val="subSup"&gt;
   &lt;m:narylim m:val="undOvr"&gt;
  &lt;/m:narylim&gt;&lt;/m:intlim&gt;
&lt;/m:wrapindent&gt;&lt;!--[endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267"&gt;
  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;
  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;
  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin-top:0in;
	margin-right:0in;
	margin-bottom:10.0pt;
	margin-left:0in;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
p
	{mso-style-noshow:yes;
	mso-style-priority:99;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	mso-fareast-font-family:"Times New Roman";}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
.MsoPapDefault
	{mso-style-type:export-only;
	margin-bottom:10.0pt;
	line-height:115%;}
@page Section1
	{size:8.5in 11.0in;
	margin:70.85pt 70.85pt 70.85pt 70.85pt;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin-top:0in;
	mso-para-margin-right:0in;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0in;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt; One of my work needs was to open OWA inside our web application to
make clients more related with the application and let them easy access their
emails while working. After some researches i found a simple way to do that, actually
it is not that much hard to find the code below, but you have to search well to
find it!. An here is the way that i have done that, we have a page with 2
iframes inside it. Upper frame holds the links banner and the bottom frame
which holds whatever is clicked from the links banner. The work is to open OWA
inside the bottom Banner. To open OWA you have to create a small JavaScript for
that which will send the user name and password to be authenticated in from
owaauth.dll and if everything goes fine you'll successed to open your email.
The code is as below;



&lt;p&gt;public partial class OpenOwaPage : System.Web.UI.Page&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private string userName;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private string passWord;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; protected void Page_Load(object sender, EventArgs e)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; passWord =
"password";&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userName
="username";&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Response.Write(CreateOWAFrom());&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(LoadOWAPostJS("logonForm"));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private string LoadOWAPostJS(string strFormId)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Constructs the JS needed to post
the data to Realex and returns it&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuilder strScript = new
StringBuilder();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strScript.Append("&amp;lt;script
language='javascript'&amp;gt;");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strScript.Append("var ctlForm =
document.forms.namedItem('{0}');");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
strScript.Append("ctlForm.username.value=\"" + userName +
"\";");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
strScript.Append("ctlForm.password.value=\"" + passWord +
"\";");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
strScript.Append("ctlForm.submit();");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
strScript.Append("&amp;lt;/script&amp;gt;");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return
String.Format(strScript.ToString(), strFormId);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; private string CreateOWAFrom()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Constructs the Realex HTML form
and returns it&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuilder strForm = new
StringBuilder();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strForm.AppendLine("&amp;lt;form
id=\"logonForm\" name=\"logonForm\"
target=\"_self\"
action=\"https://your_Owa_Adress/exchweb/bin/auth/owaauth.dll\"
method=\"post\"&amp;gt;");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strForm.AppendLine("&amp;lt;input
type=\"hidden\" name=\"destination\"
value=\"https://your_Owa_Adress/exchange/\"/&amp;gt;");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strForm.AppendLine("&amp;lt;input
type=\"hidden\" name=\"flags\"
value=\"0\"/&amp;gt;");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strForm.AppendLine("&amp;lt;input
type=\"hidden\" name=\"username\"
id=\"username\"/&amp;gt;");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strForm.AppendLine("&amp;lt;input
type=\"hidden\" name=\"password\"
id=\"password\"/&amp;gt;");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strForm.AppendLine("&amp;lt;input
type=\"hidden\" id=\"SubmitCreds\"
name=\"SubmitCreds\" value=\"Connection\"/&amp;gt;");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strForm.AppendLine("&amp;lt;input
type=\"hidden\" id=\"rdoRich\"
name=\"forcedownlevel\" value=\"0\"/&amp;gt;");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strForm.AppendLine("&amp;lt;input
type=\"hidden\" id=\"rdoPublic\" name=\"trusted\"
value=\"0\"/&amp;gt;");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
strForm.AppendLine("&amp;lt;/form&amp;gt;");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return strForm.ToString();&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
}&amp;nbsp;
&lt;br&gt;Sometimes you maybe not able to access your OWA because of your Browser
configuration, add your OWA website address to your Browser trusted site to
solve this problem. If you do not want to logoff from OWA with the regular
logoff button, read this &lt;a href="http://weblogs.asp.net/muhanadyounis/archive/2008/10/16/log-off-owa-from-code-behind.aspx" class="MsoChpDefault" title="logoff OWA" mce_href="http://weblogs.asp.net/muhanadyounis/archive/2008/10/16/log-off-owa-from-code-behind.aspx"&gt;(click here)&lt;/a&gt;. Otherwise
you'll enter OWA any time you type OWA address.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Hope This Helps&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;/m:defjc&gt;&lt;/m:rmargin&gt;&lt;/m:lmargin&gt;&lt;/m:dispdef&gt;&lt;/m:smallfrac&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6674349" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/Exchange/default.aspx">Exchange</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/OWA/default.aspx">OWA</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Asp.net Unhandled Exception (Elmah)</title><link>http://weblogs.asp.net/muhanadyounis/archive/2008/09/12/asp-net-unhandled-exception-elmah.aspx</link><pubDate>Fri, 12 Sep 2008 14:04:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6620624</guid><dc:creator>mohi88</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/rsscomments.aspx?PostID=6620624</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/commentapi.aspx?PostID=6620624</wfw:comment><comments>http://weblogs.asp.net/muhanadyounis/archive/2008/09/12/asp-net-unhandled-exception-elmah.aspx#comments</comments><description>&lt;p&gt;My client asked to handle all unhandled exception and log then in sql database. Beside that they want to log handled exception too. So after some googling&amp;nbsp; i found an open source project for exception handling, &lt;a href="http://code.google.com/p/elmah/" title="Elmah" target="_blank" mce_href="http://code.google.com/p/elmah/"&gt;ELMAH (Error Logging Modules and Handlers)&lt;/a&gt;. I found it very easy to configure Elmah to the project, i forgot to say that the project is a Running project. There is no need to write and single code line, all about web.config configuration. I wrote some lines to log the handled exception and log them.&lt;/p&gt;&lt;p&gt;I do recommend you to try &lt;a href="http://code.google.com/p/elmah/" title="Elmah" target="_blank" mce_href="http://code.google.com/p/elmah/"&gt;ELMAH&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6620624" width="1" height="1"&gt;</description><enclosure url="http://elmah.googlecode.com/files/ELMAH-1.0-BETA2-src.zip" length="1840701" type="application/x-zip" /><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/.NET+2.0/default.aspx">.NET 2.0</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/Web_2E00_Config/default.aspx">Web.Config</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/global+exception+handling/default.aspx">global exception handling</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/Elmah/default.aspx">Elmah</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/exception+handling/default.aspx">exception handling</category></item><item><title>AspNetCompiler inside Cruise Control (ccnet) Blocks</title><link>http://weblogs.asp.net/muhanadyounis/archive/2008/08/28/aspnetcompiler-insde-cruise-control-ccnet-blocks.aspx</link><pubDate>Thu, 28 Aug 2008 11:16:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6573771</guid><dc:creator>mohi88</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/rsscomments.aspx?PostID=6573771</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/commentapi.aspx?PostID=6573771</wfw:comment><comments>http://weblogs.asp.net/muhanadyounis/archive/2008/08/28/aspnetcompiler-insde-cruise-control-ccnet-blocks.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-weight: bold;"&gt;AspNetCompiler&lt;/span&gt; block made my go crazy in the last two days until i was able to use it with ccnet. I'll show a small sample about how to use AspNetCompiler with ccnet:&lt;/p&gt;&lt;p&gt;in the ccnet.config between task blocks but these lines;&lt;/p&gt;&lt;div style="margin-left: 40px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-weight: bold;"&gt;&amp;lt;msbuild&amp;gt;&lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;executable&amp;gt;C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe&amp;lt;/executable&amp;gt;&amp;lt;!--msbuild exe directory --&amp;gt;&lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;workingDirectory&amp;gt;D:\develop\CCnet\myProject\&amp;lt;/workingDirectory&amp;gt;&amp;lt;!--your working directory --&amp;gt;&lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;projectFile&amp;gt;C:\Program Files\CruiseControl.NET\server\AspNetCompilerConfiguration.xml&amp;lt;/projectFile&amp;gt;&amp;lt;!--the configuration xml file which will hold&amp;nbsp; AspNetCompiler&amp;nbsp; lines--&amp;gt;&lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;logger&amp;gt;C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll&amp;lt;/logger&amp;gt;&lt;/span&gt;&lt;br style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/msbuild&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;now create a new xml file and call it &lt;span style="font-weight: bold;"&gt;AspNetCompilerConfiguration.xml&lt;/span&gt; which will contain the lines below;&lt;/p&gt;&lt;p style="font-weight: bold; margin-left: 120px;"&gt;&amp;lt;Project&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns = "http://schemas.microsoft.com/developer/msbuild/2003"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = "AspNetPreCompile"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DefaultTargets = "PrecompileWeb"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Target Name = "PrecompileWeb"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AspNetCompiler&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VirtualPath = "DeployTemp" &amp;lt;!--this directory will be created in side your framework temp directory --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PhysicalPath = "D:\develop\CCnet\myProject\WebSite"&amp;lt;!--give the path of the project that will be precompiled --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TargetPath = "D:\develop\CCnet\myProject\PreCompiled"&amp;lt;!--your output folder--&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Force = "true"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug = "true"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Updateable = "true"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Target&amp;gt;&lt;br&gt;&amp;lt;/Project&amp;gt; &lt;/p&gt;&lt;p&gt;and that is all !! hope this helps you.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6573771" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/MsBuild/default.aspx">MsBuild</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/CCNET/default.aspx">CCNET</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/Compile/default.aspx">Compile</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/AspNetCompiler/default.aspx">AspNetCompiler</category></item><item><title>When TO SOA</title><link>http://weblogs.asp.net/muhanadyounis/archive/2008/08/02/when-to-soa.aspx</link><pubDate>Sat, 02 Aug 2008 14:41:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6471264</guid><dc:creator>mohi88</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/rsscomments.aspx?PostID=6471264</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/muhanadyounis/commentapi.aspx?PostID=6471264</wfw:comment><comments>http://weblogs.asp.net/muhanadyounis/archive/2008/08/02/when-to-soa.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp; In the last few years developer start to use &lt;a href="http://en.wikipedia.org/wiki/Service-oriented_architecture" title="SOA" target="_blank" mce_href="http://en.wikipedia.org/wiki/Service-oriented_architecture"&gt;SOA&lt;/a&gt; in many applications, because of that many new developers are too much excited to use SOA and apply the architecture of it to their applications. I found out that many applications start to be more complicated (while the application is too much simple without SOA). So, when to use SOA.&lt;br&gt;First we must know what is the meaning of SOA (not as Service-oriented architecture); it’s a kind of architecture to be used over software and web applications to increase the applications flexibility according to business requirements. SOA gives the ability to software and applications to exchange data and functionality by using xml services over the network.&lt;/p&gt;&lt;p&gt;&lt;br&gt;So let us see when to use SOA;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;If you have a business requirement that force you to develop an application that will be used on multiple platforms. (mobiles, desktops, laptops…)&lt;/li&gt;&lt;li&gt;If you have to divide the application into parts (and the parts still
communicate with each other) like ERP developments. ( you may divide an
ERP application into parts like Financial, HR, Logistic and these part
can still communicate with each other.&lt;/li&gt;&lt;li&gt;If you need to open one of your services to another developer or company.&lt;/li&gt;&lt;li&gt;If you want to exchange data over the network in a secured way.&amp;nbsp; &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ………&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp; There is many other ways and needs to use SOA depending on your customer application needs. &lt;br&gt;We must keep on mind that SOA include N-tier programing, but N-tier does not include or use SOA all the time. I do believe that each software or application must be build over tiers to achieve the OOP most important principle “Encapsulate what varies”. &lt;br&gt;So use tiers in all applications but use SOA according to your business demends.&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6471264" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/N-tier/default.aspx">N-tier</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/SOA/default.aspx">SOA</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://weblogs.asp.net/muhanadyounis/archive/tags/.NET/default.aspx">.NET</category></item></channel></rss>