<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Eli Ofek's Blog - .Net</title>
    <link>http://www.ofeks.info/Blog/</link>
    <description>My shared thoughts. mainly about computer related stuff...</description>
    <language>en-us</language>
    <copyright>Eli Ofek</copyright>
    <lastBuildDate>Thu, 08 Nov 2007 14:37:28 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>thesourcerer@ofeks.info</managingEditor>
    <webMaster>thesourcerer@ofeks.info</webMaster>
    <item>
      <trackback:ping>http://www.ofeks.info/Blog/Trackback.aspx?guid=e3d760d5-4ed0-4928-a120-9e02dc263db3</trackback:ping>
      <pingback:server>http://www.ofeks.info/Blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.ofeks.info/Blog/PermaLink,guid,e3d760d5-4ed0-4928-a120-9e02dc263db3.aspx</pingback:target>
      <dc:creator>Eli Ofek</dc:creator>
      <wfw:comment>http://www.ofeks.info/Blog/CommentView,guid,e3d760d5-4ed0-4928-a120-9e02dc263db3.aspx</wfw:comment>
      <wfw:commentRss>http://www.ofeks.info/Blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e3d760d5-4ed0-4928-a120-9e02dc263db3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <span style="FONT-SIZE: 10pt">
            <span style="FONT-FAMILY: Arial">Hi,<br /><br />
Lately we ran into a weird problem when using Enterprise Library 3.1 in the Intranet
environment,<br />
Where Internet connection is not available.<br /><br />
The symptom was a slow loading of the referenced assemblies during the application
startup.<br />
We managed to reproduce the problem using a simple console application:</span>
            <span style="FONT-FAMILY: Consolas">
              <br />
            </span>
          </span>
          <br />
________________________________________________________________________________________________<br /><br /><span style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"><span style="COLOR: blue">using</span> System;<br /><span style="COLOR: blue">using</span> System.Diagnostics;<br /><span style="COLOR: blue">using</span> System.Collections.Generic;<br /><span style="COLOR: blue">using</span> System.Text;<br /><br /><span style="COLOR: blue">namespace</span> TestCrlSample<br />
{<br /><span style="COLOR: blue">class</span> Program<br />
    {<br />
        <span style="COLOR: blue">static</span><span style="COLOR: blue">void</span> Main(<span style="COLOR: blue">string</span>[]
args)<br />
    {<br />
        <span style="COLOR: #2b91af">Console</span>.WriteLine(<span style="COLOR: #a31515">"Started
at:"</span> + <span style="COLOR: #2b91af">DateTime</span>.Now.ToString());<br />
        Debug.WriteLine(<span style="COLOR: #a31515">"Started
at:"</span> + <span style="COLOR: #2b91af">DateTime</span>.Now.ToString());<br /><br />
        Stopwatch sw = <span style="COLOR: blue">new</span> Stopwatch();<br />
        sw.Start();<br />
        DoSignedLibWork();<br />
        sw.Stop();<br /><br />
        <span style="COLOR: #2b91af">Console</span>.WriteLine(<span style="COLOR: #a31515">"Total
Time elapsed(Milliseconds):"</span> + sw.ElapsedMilliseconds);<br />
        <span style="COLOR: #2b91af">Console</span>.WriteLine(<span style="COLOR: #a31515">"Ended
at:"</span> + <span style="COLOR: #2b91af">DateTime</span>.Now.ToString());<br />
        Debug.WriteLine(<span style="COLOR: #a31515">"Ended
at:"</span> + <span style="COLOR: #2b91af">DateTime</span>.Now.ToString());<br />
        <span style="COLOR: #2b91af">Console</span>.WriteLine(<span style="COLOR: #a31515">"Press
any key to exit..."</span>);<br /><br />
        <span style="COLOR: #2b91af">Console</span>.ReadLine();<br />
}<br /><br />
    <span style="COLOR: blue">public</span><span style="COLOR: blue">static</span><span style="COLOR: blue">void</span> DoSignedLibWork()<br />
    {<br />
        <span style="COLOR: #2b91af">Console</span>.WriteLine(<span style="COLOR: #a31515">"Before
Work at:"</span> + <span style="COLOR: #2b91af">DateTime</span>.Now.ToString());<br />
        Debug.WriteLine(<span style="COLOR: #a31515">"Before
Work at:"</span> + <span style="COLOR: #2b91af">DateTime</span>.Now.ToString());<br />
        Microsoft.Practices.EnterpriseLibrary.Data.ConnectionString
cs = <span style="COLOR: blue">new</span><br />
Microsoft.Practices.EnterpriseLibrary.Data.ConnectionString(<span style="COLOR: #a31515">"Data
Source=DBSRV;Initial 
<br />
         Catalog=Repository;Integrated Security=True"</span>, <span style="COLOR: #a31515">"Admin"</span>, <span style="COLOR: #a31515">"Bla"</span>);<br />
        <span style="COLOR: #2b91af">Console</span>.WriteLine(<span style="COLOR: #a31515">"After
Work at:"</span> + <span style="COLOR: #2b91af">DateTime</span>.Now.ToString());<br />
        Debug.WriteLine(<span style="COLOR: #a31515">"After
Work at:"</span> + <span style="COLOR: #2b91af">DateTime</span>.Now.ToString());<br />
    }<br /><br />
    }<br />
}<br /></span><br />
________________________________________________________________________________________________<br /><br /><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Here are some test results we got
when diagnosing the problem:<br /></span><br /><span style="TEXT-DECORATION: underline"><strong>Running the program as usual in an
Intranet environment, no Internet connection at all:<br /></strong></span><span style="FONT-SIZE: 14pt"><br /></span>___________________________<br /><span style="FONT-SIZE: 10pt">Started at:22/07/2007 18:16:47<br />
Before Work at:22/07/2007 18:16:56<br />
After Work at:22/07/2007 18:16:56<br />
Total Time elapsed(Milliseconds):9234<br />
Ended at:22/07/2007 18:16:56<br />
Press any key to exit...<span style="FONT-FAMILY: Consolas"><br /></span></span>___________________________<br /><br /><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Notice how long it took this simple
program to run… almost 10 seconds !<br />
We ran Microsoft Network Monitor during the test to check what's going on behind.<br /><br /></span><span style="TEXT-DECORATION: underline">This is the Netmon output:<br /></span><br />
_____________________________________________________________________________________<br /><span style="FONT-SIZE: 7pt">111    <span style="BACKGROUND-COLOR: yellow">5.019387</span>        DNS    DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for <span style="BACKGROUND-COLOR: yellow">crl.microsoft.com</span> of
type Host Addr on class Internet<br />
112    5.024270        DNS    DNS:
QueryId = 0xAEAE, QUERY (Standard query), Response - Server failure 
<br />
113    5.024270        DNS    DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet<br />
123    6.024270        DNS    DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet<br />
124    6.024270        DNS    DNS:
QueryId = 0xAEAE, QUERY (Standard query), Response - Server failure 
<br />
125    6.024270        DNS    DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet<br />
126    6.024270        DNS    DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet<br />
127    6.024270        DNS    DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet<br />
128    6.024270        DNS    DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet<br />
129    6.024270        DNS    DNS:
QueryId = 0xAEAE, QUERY (Standard query), Response - Server failure 
<br />
130    6.024270        DNS    DNS:
QueryId = 0xAEAE, QUERY (Standard query), Response - Server failure 
<br />
131    6.024270        DNS    DNS:
QueryId = 0xAEAE, QUERY (Standard query), Response - Server failure 
<br />
184    10.024270        DNS    DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet<br />
227    14.025102        DNS    DNS:
QueryId = 0xB6AF, QUERY (Standard query), Query for crl.microsoft.com.myorg.com of
type Host Addr on class Internet<br />
228    14.030961        DNS    DNS:
QueryId = 0xB6AF, QUERY (Standard query), Response - Name Error 
<br />
229    14.030961        DNS    DNS:
QueryId = 0xBFAC, QUERY (Standard query), Query for crl.microsoft.com.myorg.com of
type Host Addr on class Internet<br />
230    <span style="BACKGROUND-COLOR: yellow">14.035844</span>        DNS    DNS:
QueryId = 0xBFAC, QUERY (Standard query), Response - Name Error</span><br />
_____________________________________________________________________________________<br /><br /><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Notice how the DNS requests for
"crl.microsoft.com" took almost 9 seconds !<br />
This was very funny, so we googled for this symptom.<br /></span><br /><span style="TEXT-DECORATION: underline"><strong>Internet research shows these results:<br /></strong></span><br /><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Support Certificates In Your Applications
With The .NET Framework 2.0:<br /><a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;url=http%3a%2f%2fmsdn.microsoft.com%2fmsdnmag%2fissues%2f07%2f03%2fNETSecurity%2fdefault.aspx"></a></span>http://msdn.microsoft.com/msdnmag/issues/07/03/NETSecurity/default.aspx<br /><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><br />
Microsoft, VeriSign, and Certificate Revocation:<br /></span><a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;url=http%3a%2f%2famug.org%2f%7eglguerin%2fopinion%2frevocation.html">http://amug.org/~glguerin/opinion/revocation.html</a><br /><br />
How Office Performs Certificate Revocation:<br /><a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;url=http%3a%2f%2foffice.microsoft.com%2fen-us%2fork2003%2fHA011403081033.aspx">http://office.microsoft.com/en-us/ork2003/HA011403081033.aspx</a><br /><br />
This one is talking about IE slowness:<br /><a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;url=http%3a%2f%2fwww.wilderssecurity.com%2farchive%2findex.php%2ft-47121.html">http://www.wilderssecurity.com/archive/index.php/t-47121.html<br /></a><br />
Management Studio slowness:<br /><a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;url=http%3a%2f%2fweblogs.sqlteam.com%2ftarad%2farchive%2f2006%2f10%2f05%2f13676.aspx">http://weblogs.sqlteam.com/tarad/archive/2006/10/05/13676.aspx<br /><a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;url=http%3a%2f%2fblogs.msdn.com%2fdtjones%2farchive%2f2006%2f08%2f23%2f714738.aspx">http://blogs.msdn.com/dtjones/archive/2006/08/23/714738.aspx</a><br /><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">talking about the similar symptoms,
only when using MS SQL Management Studio.<br />
The cause of the problem is the same…<br /></span><br /><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">FAQ, Why does SSMS take 45s to start
up?<br /></span><a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;url=http%3a%2f%2fblogs.msdn.com%2feuanga%2farchive%2f2006%2f07%2f11%2f662053.aspx">http://blogs.msdn.com/euanga/archive/2006/07/11/662053.aspx</a><br /><br />
Why does the .NET Runtime Optimization Service keep trying to use the internet:<br /><a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;url=http%3a%2f%2fforums.microsoft.com%2fMSDN%2fShowPost.aspx%3fPostID%3d522726%26SiteID%3d1">http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=522726&amp;SiteID=1</a></a></p>
        <p>
          <span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">so, what have we got here?<br />
It seems that Microsoft added a mechanism to the .Net CLR that checks every signed
assembly when loading it<br />
against an online revocation list.<br />
When working in an intranet environment with IP segments<br />
that are no defined as local Intranet, the mechanism is trying to locate the crl server
for 9 seconds before it<br />
gives up, delaying the assembly loading.<br /><br />
When checking the Enterprise Library Common assembly, 
<br />
We see that is indeed signed using a Microsoft Certificate:<br /><br /><img alt="" src="http://www.ofeks.info/Blog/content/binary/110807_1435_SlowAssembl1.jpg" /></span>
          <br />
          <br />
          <span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">How do we work around it you say
?<br />
Well, there are several options.<br />
The easiest one is to disable the crl check. Oddly it is done from the Internet Options
dialog available from Internet Explorer:<br /></span>
          <br />
          <img alt="" src="http://www.ofeks.info/Blog/content/binary/110807_1435_SlowAssembl2.jpg" />
          <br />
          <br />
          <span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Now, let's run our test program
again:<br /></span>
          <span style="TEXT-DECORATION: underline">
            <strong>
              <span style="FONT-SIZE: 14pt">
                <br />
              </span>Running the program after removing the check:<br /><br /></strong>
          </span>__________________________<br /><span style="FONT-SIZE: 10pt">Started at:22/07/2007 18:17:47<br />
Before Work at:22/07/2007 18:17:47<br />
After Work at:22/07/2007 18:17:47<br />
Total Time elapsed(Milliseconds):147<br />
Ended at:22/07/2007 18:17:47<br />
Press any key to exit...<br /></span>__________________________<br /><span style="TEXT-DECORATION: underline"><strong><br /></strong></span><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Notice that this
time we are down to a total of 147 milliseconds, which is much more reasonable.<br />
What about the netmon output ? Well, since there is no check<br />
Netmon output is empty !<br /><br />
What about security you say?<br />
If you are canceling the crl check, you are exposed to bogus certifications.<br />
My answer to that is: If you are already disconnected from the Internet, 
<br />
then you are just exposed as before, only this time you are not slowing down your
applications for nothing.<br /><br />
A questions might be asked about situations where Internet connection is partly available
through a firewall.<br />
In this situation you might consider asking the network administrator to allow connections
to the crl server,<br />
Or if you which, make it fail the requests immediately, so you don't need to configure
the Internet Options for every node.<br /><br />
Another optional workaround is to define the crl address in the etc/hosts file pointing
it to localhost (127.0.0.1),<br />
which will quickly fail every crl request it gets.<br /><br />
Let's run our test again, this time without removing the revocation check, but defining
the crl address in the hosts file:<br /></span><span style="TEXT-DECORATION: underline"><strong><br />
Running the program after redirecting the dns name to localhost:<br /><span style="FONT-SIZE: 14pt"><br /></span></strong></span>___________________________<br /><span style="FONT-SIZE: 10pt">Started at:22/07/2007 18:18:37<br />
Before Work at:22/07/2007 18:18:37<br />
After Work at:22/07/2007 18:18:37<br />
Total Time elapsed(Milliseconds):219<br />
Ended at:22/07/2007 18:18:37<br />
Press any key to exit...<br /></span>___________________________<br /><span style="FONT-SIZE: 12pt"><br /></span><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Notice that this time we
are using 219 milliseconds, which is a bit more then the first workaround, but still
reasonable.<br />
What about the netmon output? Well, since there is no outside communication<br />
Netmon output is empty in this case too!</span><span style="TEXT-DECORATION: underline"><br /><span style="FONT-SIZE: 14pt"><br /></span><span style="FONT-SIZE: 12pt"><strong><font size="2">Conclusion:<br /></font></strong></span></span><br /><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">When working with signed assemblies
having no Internet connection to crl.microsoft.com, 
<br />
you need to consider the loading delay time for the assemblies, Or work around them
as suggested above.<br /><br />
Good Luck,<br /><br />
Eli.</span></p>
        <img width="0" height="0" src="http://www.ofeks.info/Blog/aggbug.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3" />
      </body>
      <title>Slow Assembly loading in Intranet environment</title>
      <guid isPermaLink="false">http://www.ofeks.info/Blog/PermaLink,guid,e3d760d5-4ed0-4928-a120-9e02dc263db3.aspx</guid>
      <link>http://www.ofeks.info/Blog/PermaLink,guid,e3d760d5-4ed0-4928-a120-9e02dc263db3.aspx</link>
      <pubDate>Thu, 08 Nov 2007 14:37:28 GMT</pubDate>
      <description>&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="FONT-FAMILY: Arial"&gt;Hi,&lt;br&gt;
&lt;br&gt;
Lately we ran into a weird problem when using Enterprise Library 3.1 in the Intranet
environment,&lt;br&gt;
Where Internet connection is not available.&lt;br&gt;
&lt;br&gt;
The symptom was a slow loading of the referenced assemblies during the application
startup.&lt;br&gt;
We managed to reproduce the problem using a simple console application:&lt;/span&gt;&lt;span style="FONT-FAMILY: Consolas"&gt;
&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;br&gt;
________________________________________________________________________________________________&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;&lt;span style="COLOR: blue"&gt;using&lt;/span&gt; System;&lt;br&gt;
&lt;span style="COLOR: blue"&gt;using&lt;/span&gt; System.Diagnostics;&lt;br&gt;
&lt;span style="COLOR: blue"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br&gt;
&lt;span style="COLOR: blue"&gt;using&lt;/span&gt; System.Text;&lt;br&gt;
&lt;br&gt;
&lt;span style="COLOR: blue"&gt;namespace&lt;/span&gt; TestCrlSample&lt;br&gt;
{&lt;br&gt;
&lt;span style="COLOR: blue"&gt;class&lt;/span&gt; Program&lt;br&gt;
&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;&lt;span style="COLOR: blue"&gt;static&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; Main(&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;[]
args)&lt;br&gt;
&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;&lt;span style="COLOR: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: #a31515"&gt;"Started
at:"&lt;/span&gt; + &lt;span style="COLOR: #2b91af"&gt;DateTime&lt;/span&gt;.Now.ToString());&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Debug.WriteLine(&lt;span style="COLOR: #a31515"&gt;"Started
at:"&lt;/span&gt; + &lt;span style="COLOR: #2b91af"&gt;DateTime&lt;/span&gt;.Now.ToString());&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Stopwatch sw = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; Stopwatch();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sw.Start();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DoSignedLibWork();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sw.Stop();&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: #a31515"&gt;"Total
Time elapsed(Milliseconds):"&lt;/span&gt; + sw.ElapsedMilliseconds);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: #a31515"&gt;"Ended
at:"&lt;/span&gt; + &lt;span style="COLOR: #2b91af"&gt;DateTime&lt;/span&gt;.Now.ToString());&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Debug.WriteLine(&lt;span style="COLOR: #a31515"&gt;"Ended
at:"&lt;/span&gt; + &lt;span style="COLOR: #2b91af"&gt;DateTime&lt;/span&gt;.Now.ToString());&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: #a31515"&gt;"Press
any key to exit..."&lt;/span&gt;);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #2b91af"&gt;Console&lt;/span&gt;.ReadLine();&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;static&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; DoSignedLibWork()&lt;br&gt;
&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;&lt;span style="COLOR: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: #a31515"&gt;"Before
Work at:"&lt;/span&gt; + &lt;span style="COLOR: #2b91af"&gt;DateTime&lt;/span&gt;.Now.ToString());&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Debug.WriteLine(&lt;span style="COLOR: #a31515"&gt;"Before
Work at:"&lt;/span&gt; + &lt;span style="COLOR: #2b91af"&gt;DateTime&lt;/span&gt;.Now.ToString());&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Microsoft.Practices.EnterpriseLibrary.Data.ConnectionString
cs = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; 
&lt;br&gt;
Microsoft.Practices.EnterpriseLibrary.Data.ConnectionString(&lt;span style="COLOR: #a31515"&gt;"Data
Source=DBSRV;Initial 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catalog=Repository;Integrated Security=True"&lt;/span&gt;, &lt;span style="COLOR: #a31515"&gt;"Admin"&lt;/span&gt;, &lt;span style="COLOR: #a31515"&gt;"Bla"&lt;/span&gt;);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR: #a31515"&gt;"After
Work at:"&lt;/span&gt; + &lt;span style="COLOR: #2b91af"&gt;DateTime&lt;/span&gt;.Now.ToString());&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Debug.WriteLine(&lt;span style="COLOR: #a31515"&gt;"After
Work at:"&lt;/span&gt; + &lt;span style="COLOR: #2b91af"&gt;DateTime&lt;/span&gt;.Now.ToString());&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
}&lt;br&gt;
&lt;/span&gt;
&lt;br&gt;
________________________________________________________________________________________________&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Here are some test results we got
when diagnosing the problem:&lt;br&gt;
&lt;/span&gt;
&lt;br&gt;
&lt;span style="TEXT-DECORATION: underline"&gt;&lt;strong&gt;Running the program as usual in an
Intranet environment, no Internet connection at all:&lt;br&gt;
&lt;/strong&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 14pt"&gt;
&lt;br&gt;
&lt;/span&gt;___________________________&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt"&gt;Started at:22/07/2007 18:16:47&lt;br&gt;
Before Work at:22/07/2007 18:16:56&lt;br&gt;
After Work at:22/07/2007 18:16:56&lt;br&gt;
Total Time elapsed(Milliseconds):9234&lt;br&gt;
Ended at:22/07/2007 18:16:56&lt;br&gt;
Press any key to exit...&lt;span style="FONT-FAMILY: Consolas"&gt;
&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;___________________________&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Notice how long it took this simple
program to run… almost 10 seconds !&lt;br&gt;
We ran Microsoft Network Monitor during the test to check what's going on behind.&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span style="TEXT-DECORATION: underline"&gt;This is the Netmon output:&lt;br&gt;
&lt;/span&gt;
&lt;br&gt;
_____________________________________________________________________________________&lt;br&gt;
&lt;span style="FONT-SIZE: 7pt"&gt;111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="BACKGROUND-COLOR: yellow"&gt;5.019387&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for &lt;span style="BACKGROUND-COLOR: yellow"&gt;crl.microsoft.com&lt;/span&gt; of
type Host Addr on class Internet&lt;br&gt;
112&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.024270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xAEAE, QUERY (Standard query), Response - Server failure 
&lt;br&gt;
113&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.024270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet&lt;br&gt;
123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.024270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet&lt;br&gt;
124&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.024270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xAEAE, QUERY (Standard query), Response - Server failure 
&lt;br&gt;
125&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.024270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet&lt;br&gt;
126&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.024270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet&lt;br&gt;
127&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.024270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet&lt;br&gt;
128&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.024270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet&lt;br&gt;
129&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.024270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xAEAE, QUERY (Standard query), Response - Server failure 
&lt;br&gt;
130&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.024270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xAEAE, QUERY (Standard query), Response - Server failure 
&lt;br&gt;
131&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.024270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xAEAE, QUERY (Standard query), Response - Server failure 
&lt;br&gt;
184&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.024270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xAEAE, QUERY (Standard query), Query for crl.microsoft.com of type Host
Addr on class Internet&lt;br&gt;
227&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14.025102&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xB6AF, QUERY (Standard query), Query for crl.microsoft.com.myorg.com of
type Host Addr on class Internet&lt;br&gt;
228&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14.030961&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xB6AF, QUERY (Standard query), Response - Name Error 
&lt;br&gt;
229&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14.030961&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xBFAC, QUERY (Standard query), Query for crl.microsoft.com.myorg.com of
type Host Addr on class Internet&lt;br&gt;
230&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="BACKGROUND-COLOR: yellow"&gt;14.035844&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DNS:
QueryId = 0xBFAC, QUERY (Standard query), Response - Name Error&lt;/span&gt;
&lt;br&gt;
_____________________________________________________________________________________&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Notice how the DNS requests for
"crl.microsoft.com" took almost 9 seconds !&lt;br&gt;
This was very funny, so we googled for this symptom.&lt;br&gt;
&lt;/span&gt;
&lt;br&gt;
&lt;span style="TEXT-DECORATION: underline"&gt;&lt;strong&gt;Internet research shows these results:&lt;br&gt;
&lt;/strong&gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Support Certificates In Your Applications
With The .NET Framework 2.0:&lt;br&gt;
&lt;a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;amp;url=http%3a%2f%2fmsdn.microsoft.com%2fmsdnmag%2fissues%2f07%2f03%2fNETSecurity%2fdefault.aspx"&gt;
&lt;/span&gt;http://msdn.microsoft.com/msdnmag/issues/07/03/NETSecurity/default.aspx&lt;br&gt;
&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;
&lt;br&gt;
Microsoft, VeriSign, and Certificate Revocation:&lt;br&gt;
&lt;/span&gt;&lt;a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;amp;url=http%3a%2f%2famug.org%2f%7eglguerin%2fopinion%2frevocation.html"&gt;http://amug.org/~glguerin/opinion/revocation.html&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
How Office Performs Certificate Revocation:&lt;br&gt;
&lt;a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;amp;url=http%3a%2f%2foffice.microsoft.com%2fen-us%2fork2003%2fHA011403081033.aspx"&gt;http://office.microsoft.com/en-us/ork2003/HA011403081033.aspx&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
This one is talking about IE slowness:&lt;br&gt;
&lt;a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;amp;url=http%3a%2f%2fwww.wilderssecurity.com%2farchive%2findex.php%2ft-47121.html"&gt;http://www.wilderssecurity.com/archive/index.php/t-47121.html&lt;br&gt;
&lt;/a&gt;
&lt;br&gt;
Management Studio slowness:&lt;br&gt;
&lt;a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;amp;url=http%3a%2f%2fweblogs.sqlteam.com%2ftarad%2farchive%2f2006%2f10%2f05%2f13676.aspx"&gt;http://weblogs.sqlteam.com/tarad/archive/2006/10/05/13676.aspx&lt;br&gt;
&lt;a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;amp;url=http%3a%2f%2fblogs.msdn.com%2fdtjones%2farchive%2f2006%2f08%2f23%2f714738.aspx"&gt;http://blogs.msdn.com/dtjones/archive/2006/08/23/714738.aspx&lt;/a&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;talking about the similar symptoms,
only when using MS SQL Management Studio.&lt;br&gt;
The cause of the problem is the same…&lt;br&gt;
&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;FAQ, Why does SSMS take 45s to start
up?&lt;br&gt;
&lt;/span&gt;&lt;a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;amp;url=http%3a%2f%2fblogs.msdn.com%2feuanga%2farchive%2f2006%2f07%2f11%2f662053.aspx"&gt;http://blogs.msdn.com/euanga/archive/2006/07/11/662053.aspx&lt;/a&gt; 
&lt;br&gt;
&lt;br&gt;
Why does the .NET Runtime Optimization Service keep trying to use the internet:&lt;br&gt;
&lt;a href="http://www.ofeks.info/Blog/ct.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3&amp;amp;url=http%3a%2f%2fforums.microsoft.com%2fMSDN%2fShowPost.aspx%3fPostID%3d522726%26SiteID%3d1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=522726&amp;amp;SiteID=1&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;so, what have we got here?&lt;br&gt;
It seems that Microsoft added a mechanism to the .Net CLR that checks every signed
assembly when loading it&lt;br&gt;
against an online revocation list.&lt;br&gt;
When working in an intranet environment with IP segments&lt;br&gt;
that are no defined as local Intranet, the mechanism is trying to locate the crl server
for 9 seconds before it&lt;br&gt;
gives up, delaying the assembly loading.&lt;br&gt;
&lt;br&gt;
When checking the Enterprise Library Common assembly, 
&lt;br&gt;
We see that is indeed signed using a Microsoft Certificate:&lt;br&gt;
&lt;br&gt;
&lt;img alt="" src="http://www.ofeks.info/Blog/content/binary/110807_1435_SlowAssembl1.jpg"&gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;How do we work around it you say
?&lt;br&gt;
Well, there are several options.&lt;br&gt;
The easiest one is to disable the crl check. Oddly it is done from the Internet Options
dialog available from Internet Explorer:&lt;br&gt;
&lt;/span&gt;
&lt;br&gt;
&lt;img alt="" src="http://www.ofeks.info/Blog/content/binary/110807_1435_SlowAssembl2.jpg"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Now, let's run our test program
again:&lt;br&gt;
&lt;/span&gt;&lt;span style="TEXT-DECORATION: underline"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 14pt"&gt;
&lt;br&gt;
&lt;/span&gt;Running the program after removing the check:&lt;br&gt;
&lt;br&gt;
&lt;/strong&gt;&lt;/span&gt;__________________________&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt"&gt;Started at:22/07/2007 18:17:47&lt;br&gt;
Before Work at:22/07/2007 18:17:47&lt;br&gt;
After Work at:22/07/2007 18:17:47&lt;br&gt;
Total Time elapsed(Milliseconds):147&lt;br&gt;
Ended at:22/07/2007 18:17:47&lt;br&gt;
Press any key to exit...&lt;br&gt;
&lt;/span&gt;__________________________&lt;br&gt;
&lt;span style="TEXT-DECORATION: underline"&gt;&lt;strong&gt;
&lt;br&gt;
&lt;/strong&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Notice that this
time we are down to a total of 147 milliseconds, which is much more reasonable.&lt;br&gt;
What about the netmon output ? Well, since there is no check&lt;br&gt;
Netmon output is empty !&lt;br&gt;
&lt;br&gt;
What about security you say?&lt;br&gt;
If you are canceling the crl check, you are exposed to bogus certifications.&lt;br&gt;
My answer to that is: If you are already disconnected from the Internet, 
&lt;br&gt;
then you are just exposed as before, only this time you are not slowing down your
applications for nothing.&lt;br&gt;
&lt;br&gt;
A questions might be asked about situations where Internet connection is partly available
through a firewall.&lt;br&gt;
In this situation you might consider asking the network administrator to allow connections
to the crl server,&lt;br&gt;
Or if you which, make it fail the requests immediately, so you don't need to configure
the Internet Options for every node.&lt;br&gt;
&lt;br&gt;
Another optional workaround is to define the crl address in the etc/hosts file pointing
it to localhost (127.0.0.1),&lt;br&gt;
which will quickly fail every crl request it gets.&lt;br&gt;
&lt;br&gt;
Let's run our test again, this time without removing the revocation check, but defining
the crl address in the hosts file:&lt;br&gt;
&lt;/span&gt;&lt;span style="TEXT-DECORATION: underline"&gt;&lt;strong&gt;
&lt;br&gt;
Running the program after redirecting the dns name to localhost:&lt;br&gt;
&lt;span style="FONT-SIZE: 14pt"&gt;
&lt;br&gt;
&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;___________________________&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt"&gt;Started at:22/07/2007 18:18:37&lt;br&gt;
Before Work at:22/07/2007 18:18:37&lt;br&gt;
After Work at:22/07/2007 18:18:37&lt;br&gt;
Total Time elapsed(Milliseconds):219&lt;br&gt;
Ended at:22/07/2007 18:18:37&lt;br&gt;
Press any key to exit...&lt;br&gt;
&lt;/span&gt;___________________________&lt;br&gt;
&lt;span style="FONT-SIZE: 12pt"&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Notice that this time we
are using 219 milliseconds, which is a bit more then the first workaround, but still
reasonable.&lt;br&gt;
What about the netmon output? Well, since there is no outside communication&lt;br&gt;
Netmon output is empty in this case too!&lt;/span&gt;&lt;span style="TEXT-DECORATION: underline"&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 14pt"&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span style="FONT-SIZE: 12pt"&gt;&lt;strong&gt;&lt;font size=2&gt;Conclusion:&lt;br&gt;
&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;When working with signed assemblies
having no Internet connection to crl.microsoft.com, 
&lt;br&gt;
you need to consider the loading delay time for the assemblies, Or work around them
as suggested above.&lt;br&gt;
&lt;br&gt;
Good Luck,&lt;br&gt;
&lt;br&gt;
Eli.&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.ofeks.info/Blog/aggbug.ashx?id=e3d760d5-4ed0-4928-a120-9e02dc263db3" /&gt;</description>
      <comments>http://www.ofeks.info/Blog/CommentView,guid,e3d760d5-4ed0-4928-a120-9e02dc263db3.aspx</comments>
      <category>.Net;Proffesional</category>
    </item>
  </channel>
</rss>