<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>tijujohn</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/tijujohn/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/tijujohn/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:25:58 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>complex custom configuration section in Web.Config in asp.net sample</title>
      <link>https://docs.microsoft.com/archive/blogs/tijujohn/complex-custom-configuration-section-in-web-config-in-asp-net-sample</link>
      <pubDate>Wed, 22 May 2013 04:03:00 GMT</pubDate>
      <dc:creator><![CDATA[tijujohn83]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/tijujohn/2013/05/22/complex-custom-configuration-section-in-web-config-in-asp-net-sample/</guid>
      <description><![CDATA[lets say i &nbsp;have a custom configuration section like...]]></description>
      <content:encoded><![CDATA[<p>lets say i &nbsp;have a custom configuration section like this</p>
<p>&nbsp;</p>
<p>&nbsp;&lt;configSections&gt;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;section name="ProductsEndpoints" type ="abcd.ProductsEndpointsConfiguration" /&gt;&nbsp; <br />&nbsp;&lt;/configSections&gt;&nbsp; <br />&nbsp;<br />&nbsp;&lt;ProductsEndpoints configSource="ProductsEndpoints.config" /&gt;</p>
<p>&nbsp;</p>
<p>and My configuration is a complex xml like</p>
<p>&nbsp;</p>
<p>// ProductsEndpoints.config <br />&lt;?xml version="1.0"?&gt; <br />&lt;ProductsEndpoints&gt; <br />&nbsp;&lt;Products&gt; <br />&nbsp;&nbsp;&lt;Product Name="abcd" MemberKey="*"&gt; <br />&nbsp;&nbsp;&nbsp;&lt;Endpoints&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;Endpoint ServiceName="dtd" Uri="<a href="https://xxx-dev-app03.devid.local/dfff/v1/mbemmMrs">https://xxx-dev-app03.devid.local/dfff/v1/mbemmMrs</a>" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;Endpoint ServiceName="hhh" Uri="<a href="https://ppo-dev-app03.devid.local/gss/v1/Measures">https://ppo-dev-app03.devid.local/gss/v1/Measures</a>" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;Endpoint ServiceName="jjj" Uri="<a href="https://fff.hh.com/uu/v1">https://fff.hh.com/uu/v1</a>" /&gt; <br />&nbsp;&nbsp;&nbsp;&lt;/Endpoints&gt; <br />&nbsp;&nbsp;&lt;/Product&gt; <br />&nbsp;&nbsp;&lt;Product Name="jyy" MemberKey="de"&gt; <br />&nbsp;&nbsp;&nbsp;&lt;Endpoints&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;Endpoint ServiceName="ggg" Uri="<a href="https://mht-dev-db02/acce/v1/wwqbcdValue">https://mht-dev-db02/acce/v1/wwqbcdValue</a>" /&gt; <br />&nbsp;&nbsp;&nbsp;&lt;/Endpoints&gt; <br />&nbsp;&nbsp;&lt;/Product&gt; <br />&nbsp;&nbsp;&lt;Product Name="test" MemberKey="test"&gt;<br />&nbsp;&nbsp;&nbsp;&lt;Endpoints&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;Endpoint ServiceName="test" Uri="<a href="https://www.blahblah.com">https://www.blahblah.com</a>" /&gt;<br />&nbsp;&nbsp;&nbsp;&lt;/Endpoints&gt;<br />&nbsp;&nbsp;&lt;/Product&gt;<br />&nbsp;&lt;/Products&gt; <br />&lt;/ProductsEndpoints&gt;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>so here are the classes needed to read/write into this configuration</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; public class ProductsEndpointsConfiguration : ConfigurationSection<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ConfigurationProperty("Products", IsRequired = true, IsKey = false)]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public ProductCollection Products<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (ProductCollection)base["Products"];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base["Products"] = value;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override bool IsReadOnly()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; [ConfigurationCollection(typeof(Product), AddItemName = "Product", CollectionType = ConfigurationElementCollectionType.BasicMap)]<br />&nbsp;&nbsp;&nbsp; public class ProductCollection : ConfigurationElementCollection<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private const string ItemName = "Product";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override ConfigurationElementCollectionType CollectionType<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return ConfigurationElementCollectionType.BasicMapAlternate; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected override string ElementName<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return ItemName; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected override bool IsElementName(string elementName)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (elementName == ItemName);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected override object GetElementKey(ConfigurationElement element)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ((Product)element).Name;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected override ConfigurationElement CreateNewElement()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new Product();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new public Product this[string productName]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return (Product)base.BaseGet(productName); }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override bool IsReadOnly()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; public class EndPointsConfiguration : ConfigurationSection<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ConfigurationProperty("Endpoints", IsRequired = true, IsKey = false)]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public EndpointCollection Endpoints<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (EndpointCollection)base["Endpoints"];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base["Endpoints"] = value;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override bool IsReadOnly()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; [ConfigurationCollection(typeof(Endpoint), AddItemName = "Endpoint", CollectionType = ConfigurationElementCollectionType.BasicMap)]<br />&nbsp;&nbsp;&nbsp; public class EndpointCollection : ConfigurationElementCollection<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private const string ItemName = "Endpoint";</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override ConfigurationElementCollectionType CollectionType<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return ConfigurationElementCollectionType.BasicMapAlternate; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected override string ElementName<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return ItemName; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected override bool IsElementName(string elementName)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (elementName == ItemName);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected override object GetElementKey(ConfigurationElement element)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ((Endpoint)element).ServiceName;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected override ConfigurationElement CreateNewElement()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new Endpoint();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new public Endpoint this[string serviceName]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return (Endpoint)base.BaseGet(serviceName); }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override bool IsReadOnly()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; public class Product : ConfigurationElement<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ConfigurationProperty("Name", IsRequired = true, IsKey = true)]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Name<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return (string)base["Name"]; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set { base["Name"] = value; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ConfigurationProperty("MemberKey", IsRequired = true)]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string MemberKey<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return (string)base["MemberKey"]; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set { base["MemberKey"] = value; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ConfigurationProperty("Endpoints", IsRequired = false, IsKey = false)]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public EndpointCollection EndPoints <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ((EndpointCollection)(base["Endpoints"]));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; base["Endpoints"] = value;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override bool IsReadOnly()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; public class Endpoint : ConfigurationElement<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ConfigurationProperty("ServiceName", IsRequired = true, IsKey = true)]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string ServiceName<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return (string)base["ServiceName"]; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set { base["ServiceName"] = value; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ConfigurationProperty("Uri", IsRequired = true)]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Uri<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return (string)base["Uri"]; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set { base["Uri"] = value; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override bool IsReadOnly()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Different  redirect (http response) status codes and how the browser (should) reacts.  (301 vs 302 vs 303 vs 307)</title>
      <link>https://docs.microsoft.com/archive/blogs/tijujohn/different-redirect-http-response-status-codes-and-how-the-browser-should-reacts-301-vs-302-vs-303-vs-307</link>
      <pubDate>Thu, 31 May 2012 12:48:00 GMT</pubDate>
      <dc:creator><![CDATA[tijujohn83]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/tijujohn/2012/05/31/different-redirect-http-response-status-codes-and-how-the-browser-should-reacts-301-vs-302-vs-303-vs-307/</guid>
      <description><![CDATA[This is a quick post about the difference between these HTTP response status codes. The difference...]]></description>
      <content:encoded><![CDATA[<p>This is a quick post about the difference between these HTTP response status codes. The difference is subtle however, when doing something like SSO(my last project), the difference could be substantial.</p>
<p>[1]. The <strong>301</strong> Response</p>
<p><span style="color: #ff0000;">GET <a href="https://www.gmail.com/"><span style="color: #ff0000;">https://www.gmail.com/</span></a> HTTP/1.1</span> <br /><strong><span style="color: #008000;">HTTP/1.1 301 Moved Permanently </span></strong><br /><span style="color: #008000;">Location: https://mail.google.com/mail/</span></p>
<p>301 tells the browser that the resource at the uri has been changed permanently to the new location, typically to the value of the 'Location' response header. The browser makes a new request and subsequently, the browser will NOT make another request to the original link (even if manually typed in the address bar by the user), in this case <a href="https://www.gmail.com/">https://www.gmail.com</a>, instead, it will always make the call to <a href="https://mail.google.com/mail/">https://mail.google.com/mail/</a></p>
<p>[2]. The <strong>302</strong> response</p>
<p><span style="color: #ff0000;">GET <a href="https://mail.google.com/mail/"><span style="color: #ff0000;">https://mail.google.com/mail/</span></a> HTTP/1.1</span><br /><strong><span style="color: #008000;">HTTP/1.1 302 Moved Temporarily</span></strong><br /><span style="color: #008000;">Location: https://accounts.google.com/ServiceLogin?service=mail&amp;passive=true&amp;rm=false&amp;continue=https://mail.google.com/mail/&amp;scc=1&amp;ltmpl=default&amp;ltmplcache=2</span></p>
<p>302 tells the browser that the resource at the uri has been changed temporarily. The browser will redirect to the new location this time ONLY. The next time a request comes to the original uri, the browser will in fact hit the original uri.</p>
<p>[3]. The <strong>303</strong> response</p>
<p><span style="color: #ff0000;">GET / HTTP/1.1</span><br /><span style="color: #ff0000;">Host: www.example.com</span><br /><strong><span style="color: #008000;">HTTP/1.1 303 See Other </span></strong><br /><span style="color: #008000;">Location: https://example.org/other</span></p>
<p>303 is almost as the same as 302, the only difference being that it tells the browser to make the second request using the GET verb. so even a POST will be converted to a GET&nbsp;</p>
<p>[4]. The <strong>307</strong> response</p>
<p><span style="color: #ff0000;">GET / HTTP/1.1</span><br /><span style="color: #ff0000;">Host: www.example.com</span><br /><strong><span style="color: #008000;">HTTP/1.1 307 Temporary Redirect </span></strong><br /><span style="color: #008000;">Location: https://example.org/other</span></p>
<p>This is the same as 302 except it tells the browser that the next request should be made with the same verb as the original, in this case GET. In other words, even a POST to&nbsp;the original link, should redirected by a POST to the new link.</p>]]></content:encoded>
    </item>
    <item>
      <title>"503 - Service Unavailable" and "Load User Profile"</title>
      <link>https://docs.microsoft.com/archive/blogs/tijujohn/503-service-unavailable-and-load-user-profile</link>
      <pubDate>Wed, 04 Jan 2012 07:46:00 GMT</pubDate>
      <dc:creator><![CDATA[tijujohn83]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/tijujohn/2012/01/04/503-service-unavailable-and-load-user-profile/</guid>
      <description><![CDATA[Yesterday,&nbsp; I was kinda irritated after my site hosted on my local IIS7.5 suddently started me...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: medium;">Yesterday,&nbsp; I was kinda irritated after my site hosted on my local IIS7.5 suddently started me giving "Service Unavailable" error. I knew,&nbsp;I did not had made any changed neither did I install any updates or stuff. But I was fooling around with my windows Users profile a bit.</span></p>
<p><span style="font-size: medium;">So here is what I found after a little troubleshooting and I thoght it would be good to share it here.</span></p>
<p>&nbsp;</p>
<p><span style="font-size: medium;">I was getting these kind of erros in the windows event logs. </span></p>
<p><span style="font-size: medium;">Something got beaten up with my profile which I still need to research further.</span></p>
<p></p>
<p><span style="color: #008000;">==============</span><br /><span style="color: #008000;">system logs</span><br /><span style="color: #008000;">==============</span></p>
<p><span style="color: #008000;">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System</span><br /><span style="color: #008000;">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft-Windows-WAS</span><br /><span style="color: #008000;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 04-01-2012 18:50:19</span><br /><span style="color: #008000;">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5022</span><br /><span style="color: #008000;">Task Category: None</span><br /><span style="color: #008000;">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Warning</span><br /><span style="color: #008000;">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Classic</span><br /><span style="color: #008000;">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A</span><br /><span style="color: #008000;">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TijuJohn-PC.xxxxchn.local</span><br /><span style="color: #008000;">Description:</span><br /><span style="color: #008000;">The Windows Process Activation Service failed to create a worker process for the application pool 'Default'. The data field contains the error number.</span><br /><span style="color: #008000;">Event Xml:</span><br /><span style="color: #008000;">&lt;Event xmlns="<a href="https://schemas.microsoft.com/win/2004/08/events/event"><span style="color: #008000;">https://schemas.microsoft.com/win/2004/08/events/event</span></a>"&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;System&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Provider Name="Microsoft-Windows-WAS" Guid="{524B5D04-133C-4A62-8362-64E8EDB9CE40}" EventSourceName="WAS" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;EventID Qualifiers="32768"&gt;5022&lt;/EventID&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Version&gt;0&lt;/Version&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Level&gt;3&lt;/Level&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Task&gt;0&lt;/Task&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Opcode&gt;0&lt;/Opcode&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Keywords&gt;0x80000000000000&lt;/Keywords&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;TimeCreated SystemTime="2012-01-04T13:20:19.000000000Z" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;EventRecordID&gt;19631&lt;/EventRecordID&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Correlation /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Execution ProcessID="0" ThreadID="0" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Channel&gt;System&lt;/Channel&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Computer&gt;TijuJohn-PC.xxxxchn.local&lt;/Computer&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Security /&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;/System&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;EventData&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Data Name="AppPoolID"&gt;Default&lt;/Data&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Binary&gt;02000780&lt;/Binary&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;/EventData&gt;</span><br /><span style="color: #008000;">&lt;/Event&gt;</span></p>
<p>&nbsp;</p>
<p><span style="color: #008000;">&nbsp;----------------------------------------------------------------------------------------------------------------------------------------------------------------------</span></p>
<p>&nbsp;&nbsp;</p>
<p><span style="color: #008000;">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System</span><br /><span style="color: #008000;">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft-Windows-WAS</span><br /><span style="color: #008000;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 04-01-2012 18:50:19</span><br /><span style="color: #008000;">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5022</span><br /><span style="color: #008000;">Task Category: None</span><br /><span style="color: #008000;">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Warning</span><br /><span style="color: #008000;">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Classic</span><br /><span style="color: #008000;">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A</span><br /><span style="color: #008000;">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TijuJohn-PC.xxxxchn.local</span><br /><span style="color: #008000;">Description:</span><br /><span style="color: #008000;">The Windows Process Activation Service failed to create a worker process for the application pool 'Default'. The data field contains the error number.</span><br /><span style="color: #008000;">Event Xml:</span><br /><span style="color: #008000;">&lt;Event xmlns="<a href="https://schemas.microsoft.com/win/2004/08/events/event"><span style="color: #008000;">https://schemas.microsoft.com/win/2004/08/events/event</span></a>"&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;System&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Provider Name="Microsoft-Windows-WAS" Guid="{524B5D04-133C-4A62-8362-64E8EDB9CE40}" EventSourceName="WAS" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;EventID Qualifiers="32768"&gt;5022&lt;/EventID&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Version&gt;0&lt;/Version&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Level&gt;3&lt;/Level&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Task&gt;0&lt;/Task&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Opcode&gt;0&lt;/Opcode&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Keywords&gt;0x80000000000000&lt;/Keywords&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;TimeCreated SystemTime="2012-01-04T13:20:19.000000000Z" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;EventRecordID&gt;19632&lt;/EventRecordID&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Correlation /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Execution ProcessID="0" ThreadID="0" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Channel&gt;System&lt;/Channel&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Computer&gt;TijuJohn-PC.xxxxchn.local&lt;/Computer&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Security /&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;/System&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;EventData&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Data Name="AppPoolID"&gt;Default&lt;/Data&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Binary&gt;02000780&lt;/Binary&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;/EventData&gt;</span><br /><span style="color: #008000;">&lt;/Event&gt;</span></p>
<p><span style="color: #008000;">&nbsp;&nbsp;----------------------------------------------------------------------------------------------------------------------------------------------------------------------&nbsp;</span></p>
<p><span style="color: #008000;">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System</span><br /><span style="color: #008000;">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft-Windows-WAS</span><br /><span style="color: #008000;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 04-01-2012 18:50:20</span><br /><span style="color: #008000;">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5002</span><br /><span style="color: #008000;">Task Category: None</span><br /><span style="color: #008000;">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error</span><br /><span style="color: #008000;">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Classic</span><br /><span style="color: #008000;">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A</span><br /><span style="color: #008000;">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TijuJohn-PC.xxxxchn.local</span><br /><span style="color: #008000;">Description:</span><br /><span style="color: #008000;">Application pool 'Default' is being automatically disabled due to a series of failures in the process(es) serving that application pool.</span><br /><span style="color: #008000;">Event Xml:</span><br /><span style="color: #008000;">&lt;Event xmlns="<a href="https://schemas.microsoft.com/win/2004/08/events/event"><span style="color: #008000;">https://schemas.microsoft.com/win/2004/08/events/event</span></a>"&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;System&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Provider Name="Microsoft-Windows-WAS" Guid="{524B5D04-133C-4A62-8362-64E8EDB9CE40}" EventSourceName="WAS" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;EventID Qualifiers="49152"&gt;5002&lt;/EventID&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Version&gt;0&lt;/Version&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Level&gt;2&lt;/Level&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Task&gt;0&lt;/Task&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Opcode&gt;0&lt;/Opcode&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Keywords&gt;0x80000000000000&lt;/Keywords&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;TimeCreated SystemTime="2012-01-04T13:20:20.000000000Z" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;EventRecordID&gt;19636&lt;/EventRecordID&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Correlation /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Execution ProcessID="0" ThreadID="0" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Channel&gt;System&lt;/Channel&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Computer&gt;TijuJohn-PC.xxxxchn.local&lt;/Computer&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Security /&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;/System&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;EventData&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Data Name="AppPoolID"&gt;Default&lt;/Data&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Binary&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;/Binary&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;/EventData&gt;</span><br /><span style="color: #008000;">&lt;/Event&gt;</span></p>
<p><span style="color: #008000;">&nbsp;&nbsp;----------------------------------------------------------------------------------------------------------------------------------------------------------------------&nbsp;</span></p>
<p><span style="color: #008000;">=================</span><br /><span style="color: #008000;">Application logs</span><br /><span style="color: #008000;">=================</span></p>
<p><span style="color: #008000;">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application</span><br /><span style="color: #008000;">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft-Windows-User Profiles Service</span><br /><span style="color: #008000;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 04-01-2012 18:50:20</span><br /><span style="color: #008000;">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1500</span><br /><span style="color: #008000;">Task Category: None</span><br /><span style="color: #008000;">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error</span><br /><span style="color: #008000;">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br /><span style="color: #008000;">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IIS APPPOOL\Default</span><br /><span style="color: #008000;">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TijuJohn-PC.xxxxchn.local</span><br /><span style="color: #008000;">Description:</span><br /><span style="color: #008000;">Windows cannot log you on because your profile cannot be loaded. Check that you are connected to the network, and that your network is functioning correctly.</span></p>
<p><span style="color: #008000;">&nbsp;DETAIL - The system cannot find the file specified.</span></p>
<p><span style="color: #008000;">Event Xml:</span><br /><span style="color: #008000;">&lt;Event xmlns="<a href="https://schemas.microsoft.com/win/2004/08/events/event"><span style="color: #008000;">https://schemas.microsoft.com/win/2004/08/events/event</span></a>"&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;System&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Provider Name="Microsoft-Windows-User Profiles Service" Guid="{89B1E9F0-5AFF-44A6-9B44-0A07A7CE5845}" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;EventID&gt;1500&lt;/EventID&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Version&gt;0&lt;/Version&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Level&gt;2&lt;/Level&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Task&gt;0&lt;/Task&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Opcode&gt;0&lt;/Opcode&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Keywords&gt;0x8000000000000000&lt;/Keywords&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;TimeCreated SystemTime="2012-01-04T13:20:20.111076300Z" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;EventRecordID&gt;22901&lt;/EventRecordID&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Correlation /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Execution ProcessID="120" ThreadID="3824" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Channel&gt;Application&lt;/Channel&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Computer&gt;TijuJohn-PC.xxxxchn.local&lt;/Computer&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Security UserID="S-1-5-82-600268399-1120027035-1681634044-127933913-1153483023" /&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;/System&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;EventData&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Data Name="Error"&gt;The system cannot find the file specified.</span><br /><span style="color: #008000;">&lt;/Data&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;/EventData&gt;</span><br /><span style="color: #008000;">&lt;/Event&gt;</span></p>
<p><span style="color: #008000;">&nbsp;&nbsp;----------------------------------------------------------------------------------------------------------------------------------------------------------------------</span></p>
<p>&nbsp;</p>
<p><span style="color: #008000;">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application</span><br /><span style="color: #008000;">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft-Windows-User Profiles Service</span><br /><span style="color: #008000;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 04-01-2012 18:50:20</span><br /><span style="color: #008000;">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1511</span><br /><span style="color: #008000;">Task Category: None</span><br /><span style="color: #008000;">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error</span><br /><span style="color: #008000;">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br /><span style="color: #008000;">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IIS APPPOOL\Default</span><br /><span style="color: #008000;">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TijuJohn-PC.xxxxchn.local</span><br /><span style="color: #008000;">Description:</span><br /><span style="color: #008000;">Windows cannot find the local profile and is logging you on with a temporary profile. Changes you make to this profile will be lost when you log off.</span><br /><span style="color: #008000;">Event Xml:</span><br /><span style="color: #008000;">&lt;Event xmlns="<a href="https://schemas.microsoft.com/win/2004/08/events/event"><span style="color: #008000;">https://schemas.microsoft.com/win/2004/08/events/event</span></a>"&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;System&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Provider Name="Microsoft-Windows-User Profiles Service" Guid="{89B1E9F0-5AFF-44A6-9B44-0A07A7CE5845}" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;EventID&gt;1511&lt;/EventID&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Version&gt;0&lt;/Version&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Level&gt;2&lt;/Level&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Task&gt;0&lt;/Task&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Opcode&gt;0&lt;/Opcode&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Keywords&gt;0x8000000000000000&lt;/Keywords&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;TimeCreated SystemTime="2012-01-04T13:20:20.111076300Z" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;EventRecordID&gt;22900&lt;/EventRecordID&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Correlation /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Execution ProcessID="120" ThreadID="3824" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Channel&gt;Application&lt;/Channel&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Computer&gt;TijuJohn-PC.xxxxchn.local&lt;/Computer&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Security UserID="S-1-5-82-600268399-1120027035-1681634044-127933913-1153483023" /&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;/System&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;EventData&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;/EventData&gt;</span><br /><span style="color: #008000;">&lt;/Event&gt;</span></p>
<p><span style="color: #008000;">&nbsp;&nbsp;----------------------------------------------------------------------------------------------------------------------------------------------------------------------</span></p>
<p>&nbsp;</p>
<p><span style="color: #008000;">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application</span><br /><span style="color: #008000;">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft-Windows-User Profiles Service</span><br /><span style="color: #008000;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 04-01-2012 18:50:20</span><br /><span style="color: #008000;">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1515</span><br /><span style="color: #008000;">Task Category: None</span><br /><span style="color: #008000;">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error</span><br /><span style="color: #008000;">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><br /><span style="color: #008000;">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IIS APPPOOL\Default</span><br /><span style="color: #008000;">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TijuJohn-PC.xxxxchn.local</span><br /><span style="color: #008000;">Description:</span><br /><span style="color: #008000;">Windows has backed up this user profile. Windows will automatically try to use the backup profile the next time this user logs on.</span><br /><span style="color: #008000;">Event Xml:</span><br /><span style="color: #008000;">&lt;Event xmlns="<a href="https://schemas.microsoft.com/win/2004/08/events/event"><span style="color: #008000;">https://schemas.microsoft.com/win/2004/08/events/event</span></a>"&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;System&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Provider Name="Microsoft-Windows-User Profiles Service" Guid="{89B1E9F0-5AFF-44A6-9B44-0A07A7CE5845}" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;EventID&gt;1515&lt;/EventID&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Version&gt;0&lt;/Version&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Level&gt;2&lt;/Level&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Task&gt;0&lt;/Task&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Opcode&gt;0&lt;/Opcode&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Keywords&gt;0x8000000000000000&lt;/Keywords&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;TimeCreated SystemTime="2012-01-04T13:20:20.111076300Z" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;EventRecordID&gt;22899&lt;/EventRecordID&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Correlation /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Execution ProcessID="120" ThreadID="3824" /&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Channel&gt;Application&lt;/Channel&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Computer&gt;TijuJohn-PC.xxxxchn.local&lt;/Computer&gt;</span><br /><span style="color: #008000;">&nbsp;&nbsp;&nbsp; &lt;Security UserID="S-1-5-82-600268399-1120027035-1681634044-127933913-1153483023" /&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;/System&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;EventData&gt;</span><br /><span style="color: #008000;">&nbsp; &lt;/EventData&gt;</span><br /><span style="color: #008000;">&lt;/Event&gt;</span></p>
<p><span style="color: #008000; font-size: medium;">&nbsp;----------------------------------------------------------------------------------------------------------------------------------------------------------------------</span></p>
<p><span style="color: #000000; font-size: medium;"></span>&nbsp;</p>
<p><span style="color: #000000; font-size: medium;">So apparently there is one setting in Application pool advanced setting called "Load User Profile" which&nbsp;is a&nbsp;boolean. </span></p>
<p><span style="color: #000000; font-size: medium;">So what is the quick fix, You guessed it right. Change the value to 'false'.</span></p>
<p><span style="color: #000000; font-size: medium;"></span>&nbsp;</p>
<p><span style="color: #000000; font-size: medium;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/4150.LoadUserProfile.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/4150.LoadUserProfile.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/4150.LoadUserProfile.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/4150.LoadUserProfile.png" /></a></span></p>]]></content:encoded>
    </item>
    <item>
      <title>SELECT * not working for IIS WMI providers</title>
      <link>https://docs.microsoft.com/archive/blogs/tijujohn/select-not-working-for-iis-wmi-providers</link>
      <pubDate>Wed, 22 Jun 2011 10:24:00 GMT</pubDate>
      <dc:creator><![CDATA[tijujohn83]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/tijujohn/2011/06/22/select-not-working-for-iis-wmi-providers/</guid>
      <description><![CDATA[recently I was working on one issue where a simple WMI query was not returning all the proper...]]></description>
      <content:encoded><![CDATA[<p>recently I was working on one issue where a simple WMI query was not returning all the proper results. It was a simple query as "<strong>SELECT * FROM IISWebVirtualDirSetting</strong>"</p>
<p>even tried using <strong>adsutil</strong> like <a title="David's blog" href="https://blogs.msdn.com/b/david.wang/archive/2007/12/19/howto-list-all-virtual-directories-and-paths-of-a-list-of-servers.aspx">this</a> directly to get the results, still same results. We checked that the WMI functionality was itself working fine. So what was the issue ?</p>
<p>It turned out that&nbsp; IIS WMI provider cannot handle custom IIS metabase setting like following entry:</p>
<p><br />&lt;IIsConfigObject&nbsp;&nbsp;&nbsp;&nbsp; Location ="/LM/W3SVC/1/ROOT/MyCustom-web"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Custom<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name="AccessFlags"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ID="6016"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Value="AccessExecute | AccessRead"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type="DWORD"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UserType="IIS_MD_UT_FILE"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Attributes="INHERIT"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Custom<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name="AppFriendlyName"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ID="2102"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Value="eas-web"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type="STRING"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UserType="IIS_MD_UT_FILE"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Attributes="INHERIT"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&gt;</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>The Workaround</strong></span></p>
<p>1. Cerate a new virtual directory called "<em><strong>MyCustom-web-backup</strong>"</em> and point the target folder to the same windows folder path.</p>
<p>2.<strong> iisreset -stop</strong></p>
<p>3. look out for &nbsp;"<strong><em>&lt;IIsWebVirtualDir&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Location ="/LM/W3SVC/1/ROOT/ MyCustom-web-backup"</em></strong>&nbsp; , and merge <strong>MyCustom-web</strong> elements into <strong>MyCustom-web-backup</strong> elements.</p>
<p>4. <strong>iisreset -start</strong></p>
<p>5. Delete the old entries after renaming back the new entry from <strong>MyCustom-web-backup </strong> to<strong> MyCustom-web</strong></p>
<p>&nbsp;</p>
<p>speical thanks to <strong>Hui Zhu</strong>&nbsp;for finding this.</p>]]></content:encoded>
    </item>
    <item>
      <title>cool feautre in Process explorer.</title>
      <link>https://docs.microsoft.com/archive/blogs/tijujohn/cool-feautre-in-process-explorer</link>
      <pubDate>Mon, 23 May 2011 07:55:50 GMT</pubDate>
      <dc:creator><![CDATA[tijujohn83]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/tijujohn/2011/05/23/cool-feautre-in-process-explorer/</guid>
      <description><![CDATA[I had a scenario where i was getting a random popup from some exe. Was not able to make...]]></description>
      <content:encoded><![CDATA[<p>I had a scenario where i was getting a random popup from some exe. Was not able to make sure&nbsp;which process was actually the culprit as the error message was also bit misleading. Task list before and after closing the popup was also giving the same list. <em><strong>Event Notification Application</strong>: Unable to register with Framework, Program will not exit.</em></p>
<p><em><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/1651.ENA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/1651.ENA.png"><img height="108" width="309" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/1651.ENA.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/1651.ENA.png" border="0" /></a></em></p>
<p>So&nbsp;finding out which process is causing this turned out to be very simple.</p>
<p>Use a tool, process explorer (<a href="https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx">https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx</a>). It has a cool feauture, you can drag and drop your mouse to any window and it will show the corresponding process.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/7536.ProcessExp.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/7536.ProcessExp.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/7536.ProcessExp.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/7536.ProcessExp.jpg" border="0" /></a></p>
<p>Thats what we did and we had the culprit in just 2.2 seconds :)</p>]]></content:encoded>
    </item>
    <item>
      <title>GC flavours and memory usage.</title>
      <link>https://docs.microsoft.com/archive/blogs/tijujohn/gc-flavours-and-memory-usage</link>
      <pubDate>Tue, 17 May 2011 13:51:55 GMT</pubDate>
      <dc:creator><![CDATA[tijujohn83]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/tijujohn/2011/05/17/gc-flavours-and-memory-usage/</guid>
      <description><![CDATA[Memory Allocation,&nbsp;processor bitness&nbsp;and number of processors
&nbsp;
I had recently...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: large;"><strong><span style="color: #000080;"><span style="font-size: large;"><strong><span style="color: #000080;">Memory Allocation,&nbsp;processor bitness&nbsp;and number of processors</span></strong></span></span></strong></span></p>
<p><span style="color: #000000; font-size: small;">&nbsp;</span></p>
<p><span style="color: #000000; font-size: small;">I had recently worked on an issue where the customer has noticed a high virtual memory usage by the worker process. It was&nbsp;more than&nbsp;5 GB. The working set is around 300 Mbs. The interesting part is the memory size will bloat even if there is a single request. It turns out that whenever the first time Application domains are created, the virtual memory shot to 5 GB.</span></p>
<p><span style="color: #000000; font-size: small;">So why is this high memory&nbsp;usage. The process is practically doing nothing and still so muh memory usage. The answer comes from the point that there are multiple&nbsp;flavours of GC that are available and added with the bitness of the&nbsp;CPU, the memory usage&nbsp;will significatntly differ.</span></p>
<p><span style="color: #000000; font-size: small;">Here is the&nbsp;thing.&nbsp;The customer had a 64 bit machine&nbsp;with 4 logical processors.&nbsp;By default the server variant of GC will run. Now what happens is that when the first request comes, all the application domain get created and memory is allocated to the .net components. Specifically speaking 1 heap is allocated to 1 processor. Since there are 4 processors, 4 heaps will get created, so 4 GB of heap memory will be allocated as soon as the application domain gets created. Additionally, and LOH of 256 mb is also created and allocated per heap. This all results in a memory allocation of&nbsp; (1+.25)*4 = 5GB.</span></p>
<p><span style="color: #000000; font-size: small;">This behavior is because in a 64 bit process, the address space is 8TB(user mode) + 8TB(kernel mode), compared to 2GB(user mode) + 2GB(kernel mode). The process is expected to use more memory and this is a tradeoff for performance.</span></p>
<p><span style="color: #000000; font-size: small;">Having said that, there will not be a performance hit because of these allocations as all of it will not be in RAM. Only the &ldquo;working set&rdquo; will be in RAM and you can verify by enabling that column in task manager. So bottom line is that this behavior is OK and no performance hit will happened because of this.</span></p>
<p><span style="color: #000000; font-size: small;">server version of the GC and on 64-bit process:<br />initial_segment_size = 1 GB<br />initial_large_segment_size = 256 MB</span></p>
<p><span style="color: #000000; font-size: small;">server version of the GC and on 32-bit process:<br />initial_segment_size = 64 MB<br />initial_large_segment_size =&nbsp;32 MB</span></p>
<p><span style="color: #000000; font-size: small;">workstation&nbsp;version of the GC and on 64-bit process:<br />initial_segment_size = 256 MB<br />initial_large_segment_size =&nbsp;128 MB</span></p>
<p><span style="color: #000000; font-size: small;">&nbsp;</span><span style="color: #000000; font-size: small;">Note: for server version, if there are more than 4 processors, the <br />initial_segment_size is cut in half.</span></p>
<p><span style="color: #000000; font-size: small;">We can change the default behaviour by making the configuration change in Aspnet.config file in the Framework folder.</span></p>
<p><span style="color: #000000; font-size: small;"></span></p>
<p><span style="font-size: large;"><strong><span style="color: #000080;">More Information</span></strong></span></p>
<p>Lets start with task manager as how it shows the memory usage data.</p>
<ul>
<li><strong>Memory - Private Working Set&nbsp;=</strong>&nbsp;The amount of memory a process is using that can't be shared by other processes.</li>
<li><strong>Memory - Working Set = &nbsp;</strong><strong>Memory - Private Working Set +&nbsp;</strong> the amount of memory the process is using that can be shared by other processes(eg. ntdll).</li>
<li><strong>Memory - Commit Size</strong> = Amount of virtual memory that's reserved for use by a process.</li>
</ul>
<p>In a 64 bit process, the address space is 8TB(user mode) + 8TB(kernel mode), compared to 2GB(user mode) + 2GB(kernel mode) in a 32 bit process.</p>
<p>So how many flovours of GC&nbsp;are available in different flavours of .net?</p>
<ol>
<li><strong><span style="text-decoration: underline;">.net 1.1</span> </strong>There are 2 versions of GC, implemented in either <em>mscorwks.dll </em>or <em>mscorsvr.dll</em>.&nbsp;&nbsp;<em>mscoree.dll</em> loads either <em>mscorwks.dll </em>or <em>mscorsvr.dll </em>based on number of processors.</li>
<li><strong><span style="text-decoration: underline;">.net 2.0</span> </strong>Here, mscoree.dll loads mscorwks.&nbsp;Both Server version and Workstation version is packaged into&nbsp;the single assembly. i.e. mscorwks!Svr and mscorwks!Wks.</li>
<li><span style="text-decoration: underline;"><strong>.net 4.0</strong></span>&nbsp;We have a new dll altogether, CLR.dll. That has the implementations of server and workstation GC.</li>
</ol>
<p>you can quickly see which processes have loaded a specific module by this command</p>
<p><em>C:\Users\tijujohn&gt;tasklist /m mscorwks.dll</em></p>
<p>Image Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID Modules<br />========================= ======== <br />MsDtsSrvr.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2704 mscorwks.dll<br />MagicMouse.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2776 mscorwks.dll<br />MagicMouse.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2784 mscorwks.dll<br />DcaTray.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3064 mscorwks.dll<br />EasyAssistLaunchpad.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3572 mscorwks.dll<br />msmdsrv.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2424 mscorwks.dll<br />XobniService.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4196 mscorwks.dll<br />SQLAGENT90.EXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5024 mscorwks.dll<br />OUTLOOK.EXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5372 mscorwks.dll<br />PresentationFontCache.exe&nbsp;&nbsp;&nbsp;&nbsp; 9764 mscorwks.dll<br />InetMgr.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4504 mscorwks.dll</p>]]></content:encoded>
    </item>
    <item>
      <title>How To use WebAdministration for IIS7/7.5 using PowerShell</title>
      <link>https://docs.microsoft.com/archive/blogs/tijujohn/how-to-use-webadministration-for-iis77-5-using-powershell</link>
      <pubDate>Wed, 04 May 2011 14:05:00 GMT</pubDate>
      <dc:creator><![CDATA[tijujohn83]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/tijujohn/2011/05/04/how-to-use-webadministration-for-iis77-5-using-powershell/</guid>
      <description><![CDATA[Summary
A simple how-to walkthrough of using powershell WebAdministration module for IIS to modify...]]></description>
      <content:encoded><![CDATA[<p><span style="text-decoration: underline;"><strong>Summary</strong></span></p>
<p>A simple how-to walkthrough of using powershell WebAdministration module for IIS to modify ApplicationHost.config.</p>
<p><span style="text-decoration: underline;"><strong>Description</strong></span></p>
<p>Powershell is an excellent tool for running admin tasks on a server. WebAdministration an excellent out of the box powershell snap-in for configuring an mangaing IIS. This provider implements one virtual drive named IIS. It has three logical groupings AppPools,Sites and&nbsp; SslBindings. We can also leverage the capabilities of the built in cmdlets for various operations.<br />Here we will be modifying "Ftp firewall Support" Data Channel port range settings and Firewall IP settings. Although this particular example is specific to that, these methods can be applied for any applicationHost.config setting. </p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/3364.PoserShellConsole.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/3364.PoserShellConsole.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/3364.PoserShellConsole.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/3364.PoserShellConsole.png" border="0" /></a></p>
<p>&nbsp;and this is would&nbsp;show these settings in IIS GUI</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/4401.IIS%20firewall%20settings.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/4401.IIS-firewall-settings.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/4401.IIS%20firewall%20settings.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/4401.IIS-firewall-settings.jpg" border="0" /></a></p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>More Information</strong></span></p>
<p>By default the "Execution Policy" powershell is "Restricted". So that means if you just run the import command or WebAdministration, you will get an Exception from powershell. We can set the this policy to "RemoteSigned" that will allow your custom scripts to be run but will not allow any internet downloaded script which is not trusted. We then do this by ruinning the command</p>
<p><strong><em><span style="font-family: terminal,monaco;">PS &lt;path&gt;Set-ExecutionPolicy RemoteSigned</span></em></strong></p>
<p>Oouch..you get another error, "access denied". Did you forgot to run powershell as Administrator? Once you run as Administrator, this will successfully run now. Now import the module, it should be a success again.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/3441.setExecutionPolicy.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/3441.setExecutionPolicy.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/3441.setExecutionPolicy.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/3441.setExecutionPolicy.png" border="0" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/3857.setExecutionPolicy_Admin.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/3857.setExecutionPolicy_5F00_Admin.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/45/05/3857.setExecutionPolicy_Admin.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-45-05/3857.setExecutionPolicy_5F00_Admin.png" border="0" /></a></p>
<p>Probably the first command you should know would be how to get help, here it is</p>
<p><em><strong><span style="font-family: terminal,monaco;">PS &lt;path&gt;Get-help</span></strong></em></p>
<p>for getting help about specific commandlets, </p>
<p><em><strong><span style="font-family: terminal,monaco;">PS &lt;path&gt;Get-help &lt;cmdlet name&gt;</span></strong></em></p>
<p>to get a list of all supported cmdlets, </p>
<p><em><strong><span style="font-family: terminal,monaco;">PS &lt;path&gt;get-command -pssnapin WebAdministration</span></strong></em></p>
<p>more information can be found at <a href="https://learn.iis.net/page.aspx/447/managing-iis-with-the-iis-70-powershell-snap-in/">https://learn.iis.net/page.aspx/447/managing-iis-with-the-iis-70-powershell-snap-in/</a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>