<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>The World is mine &#187; tips</title>
	<atom:link href="http://grozeille.com/tag/tips/feed/" rel="self" type="application/rss+xml" />
	<link>http://grozeille.com</link>
	<description>Just another Wordpress.com weblog</description>
	<lastBuildDate>Sat, 07 Jan 2012 12:00:31 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='grozeille.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>The World is mine &#187; tips</title>
		<link>http://grozeille.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://grozeille.com/osd.xml" title="The World is mine" />
	<atom:link rel='hub' href='http://grozeille.com/?pushpress=hub'/>
		<item>
		<title>Impossible de démarrer IIS</title>
		<link>http://grozeille.com/2008/06/22/impossible-de-demarrer-iis/</link>
		<comments>http://grozeille.com/2008/06/22/impossible-de-demarrer-iis/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 14:22:13 +0000</pubDate>
		<dc:creator>Mathias Kluba</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[iss]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://grozeille.wordpress.com/?p=65</guid>
		<description><![CDATA[Il y a des astuces que j&#8217;estime devoir propager sur Internet, car ça peut éviter quelques arrachages de cheveux. Symptôme: quand on souhaite démarrer IIS (6), ce dernier plante avec l&#8217;erreur &#8220;Une erreur 0x8ffe2740 inattendue s&#8217;est produite&#8220;. Le nom de l&#8217;erreur n&#8217;est pas très clair, et je me suis dit que le numéro hexa serait [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&amp;blog=173450&amp;post=65&amp;subd=grozeille&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Il y a des astuces que j&#8217;estime devoir propager sur Internet, car ça peut éviter quelques arrachages de cheveux.</p>
<p>Symptôme: quand on souhaite démarrer IIS (6), ce dernier plante avec l&#8217;erreur &#8220;<strong>Une erreur 0x8ffe2740 inattendue s&#8217;est produite</strong>&#8220;.</p>
<p><a href="http://grozeille.files.wordpress.com/2008/06/cannotstartiis2.jpg"><img class="alignnone size-full wp-image-70" src="http://grozeille.files.wordpress.com/2008/06/cannotstartiis2.jpg?w=630" alt=""   /></a></p>
<p><span id="more-65"></span></p>
<p>Le nom de l&#8217;erreur n&#8217;est pas très clair, et je me suis dit que le numéro hexa serait différent pour chaque PC. Mais j&#8217;ai finis par chercher ce numéro sur Google et je suis tombé sur l&#8217;explication: <a href="http://support.microsoft.com/kb/816944/fr">http://support.microsoft.com/kb/816944/fr</a></p>
<p>Pour résumer, le port utiliser par IIS (80 par défaut) est déjà utilisé.<br />
Le port 80?? Mais qu&#8217;est-ce qui peut bien utiliser le port 80 sur mon PC fraichement installé???!!</p>
<p>Le site de Microsoft conseille d&#8217;utiliser 2 outils pour trouver le fautif: TCPView qui est une application &#8220;graphique&#8221;, et FPort qui est en ligne de commande. Bien sûr, je choisi la version &#8220;graphique&#8221;, sympa d&#8217;ailleurs mais qui ne trouve pas le fautif!!<br />
Heureuse FPort, quand à lui, a bien trouver l&#8217;application qui utilise le port 80:</p>
<p><a href="http://grozeille.files.wordpress.com/2008/06/skypeport801.jpg"><img class="alignnone size-full wp-image-71" src="http://grozeille.files.wordpress.com/2008/06/skypeport801.jpg?w=630" alt=""   /></a></p>
<p>Et oui, le fautif c&#8217;est Skype! Très étonnant&#8230; info trouvé sur <a href="http://forum.skype.com/index.php?showtopic=42531">http://forum.skype.com/index.php?showtopic=42531</a></p>
<p>Donc voila ce qu&#8217;il faut décocher pour corriger le problème:</p>
<p><a href="http://grozeille.files.wordpress.com/2008/06/skypeport80config2.jpg"><img class="alignnone size-full wp-image-73" src="http://grozeille.files.wordpress.com/2008/06/skypeport80config2.jpg?w=630" alt=""   /></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/grozeille.wordpress.com/65/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/grozeille.wordpress.com/65/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grozeille.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grozeille.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grozeille.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grozeille.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/grozeille.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/grozeille.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/grozeille.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/grozeille.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grozeille.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grozeille.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grozeille.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grozeille.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grozeille.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grozeille.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&amp;blog=173450&amp;post=65&amp;subd=grozeille&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://grozeille.com/2008/06/22/impossible-de-demarrer-iis/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fcf307a3a2899d162cabfd41241f17b9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grozeille</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2008/06/cannotstartiis2.jpg" medium="image" />

		<media:content url="http://grozeille.files.wordpress.com/2008/06/skypeport801.jpg" medium="image" />

		<media:content url="http://grozeille.files.wordpress.com/2008/06/skypeport80config2.jpg" medium="image" />
	</item>
		<item>
		<title>Timeout WCF au bout d&#8217;un certain nombre d&#8217;appels</title>
		<link>http://grozeille.com/2008/04/30/timeout-wcf-au-bout-dun-certain-nombre-dappels/</link>
		<comments>http://grozeille.com/2008/04/30/timeout-wcf-au-bout-dun-certain-nombre-dappels/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 23:20:52 +0000</pubDate>
		<dc:creator>Mathias Kluba</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Asp.net]]></category>
		<category><![CDATA[Spring.net]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://grozeille.wordpress.com/?p=50</guid>
		<description><![CDATA[Rien de plus stressant que de passer une journée entière sur un bug. Surtout si on n&#8217;a aucune idée du problème (pas d&#8217;exceptions, ni d&#8217;erreurs dans les logs) et que les recherches sur Internet sont infructueuses. Contexte : une application Web Asp.Net communique avec un service WCF. Problème : au bout d’un certain nombre d’appels [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&amp;blog=173450&amp;post=50&amp;subd=grozeille&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Rien de plus stressant que de passer une journée entière sur un bug. Surtout si on n&#8217;a aucune idée du problème (pas d&#8217;exceptions, ni d&#8217;erreurs dans les logs) et que les recherches sur Internet sont infructueuses.<br />
<strong>Contexte</strong> : une application Web Asp.Net communique avec un service WCF.<br />
<strong>Problème</strong> : au bout d’un certain nombre d’appels (invariant) l’application Web n’arrive plus à joindre le serveur (Timeout).</p>
<p><span id="more-50"></span>Pour conserver une trace de mon incompétence, voici donc la <strong>solution</strong>:<br />
Pour qu&#8217;on puisse dialoguer avec un service WCF dans une page Asp.net, je leur injecte un proxy à l’aide de Spring (voir <a href="http://www.springframework.net/doc-latest/reference/html/web.html#web-di">Spring.net pour le web</a>). Pour cela, j’utilise une &#8220;factory de proxy&#8221; à l’aide de l’interface <a href="http://www.springframework.net/doc-latest/reference/html/objects.html#d0e4032">IFactoryObject</a>.<br />
Crédule que j’étais, j’imaginais que le fait de retourner <code>true</code> pour la propriété <code>IsSingleton</code> allait faire en sorte que Spring.net ne fasse appel qu’une seule fois à la méthode <code>GetObject()</code>.<br />
Et bien non ! C&#8217;est à vous d’être cohérent: même si <code>IsSingleton</code> retourne <code>true</code>,  rien ne vous empêche de toujours retourner une instance différente dans la méthode <code>GetObject()</code>.</p>
<p>Pour en revenir à mon problème, vous l’aurez compris : ma méthode <code>GetObject()</code> retournait à chaque fois un nouveau proxy vers le service WCF.<br />
<strong>Résulat</strong> : à chaque fois que Spring avait besoin d’injecter mon proxy à une page (postback par exemple), je créai une nouvelle connexion au serveur WCF. J&#8217;ai fini par atteindre le nombre de connexion max, et le serveur ne répondait plus.</p>
<p>Il est tout de même dommage que les <a href="http://msdn.microsoft.com/en-us/library/ms732023.aspx">traces WCF</a> ne m&#8217;ont pas révélé d&#8217;exception expliquant cette limite max de connexion <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Pour approfondir le sujet sur les <code>IFactoryObject</code> :<br />
Un objet qui implémente <code>IFactoryObject</code> doit toujours être un singleton, si ce n’est pas le cas on obtient une exception:<br />
<pre class="brush: xml;">
&lt;object id=&quot;maFactory&quot; type=&quot;MonAssembly.MaFactory, MonAssembly&quot; singleton=&quot;false&quot;/&gt;
</pre><br />
<code><br />
=&gt; IFactoryObject must be defined as a singleton - IFactoryObjects themselves are not allowed to be prototypes.<br />
</code></p>
<p>La propriété <code>IsSingleton</code> de la factory indique seulement ce qu’elle est censée faire&#8230; mais sans aucune obligation/vérification du comportement. Dans mon cas, je retournais <code>true</code> mais rien ne m&#8217;a empêché de créer une nouvelle instance à chaque appel&#8230;</p>
<p>Dans le cas particulier d&#8217;une application Asp.net, on peut avoir des &#8220;presque singleton&#8221; en changeant le <code>scope</code>:<br />
<pre class="brush: xml;">
&lt;object id=&quot;maFactory&quot; type=&quot;MonAssembly.MaFactory, MonAssembly&quot; scope=&quot;application&quot;/&gt;
</pre></p>
<ul>
<li>scope=&#8221;application&#8221; : c&#8217;est un singleton de toute l&#8217;application web. Firefox et Safari m&#8217;affiche toujours 1.</li>
<li>scope=&#8221;session&#8221; : c&#8217;est un singleton pour chaque session cliente. Firefox et Safari m&#8217;affiche toujours 2 (1 instance pour Firefox +  1 instance pour Safari).</li>
<li>scope=&#8221;request&#8221; : c&#8217;est un singleton dans le cadre de la requête. Firefox et Safari vois le compteur s&#8217;incrémenter à chaque rafraichissement de la page.</li>
</ul>
<p>Pour <a href="http://www.springframework.net/doc-latest/reference/html/objects.html#d0e2577">plus d&#8217;infos sur les scopes</a>.</p>
<p><strong>Conclusion(s)</strong> :</p>
<ol>
<li>Ce n&#8217;est pas la propriété <code>IsSingleton</code> qui détermine si Spring va faire appelle une ou plusieurs fois à votre Factory. C&#8217;est à elle de fournir le comportement adéquat.</li>
<li>Un singleton n&#8217;en est pas toujours un&#8230; ça dépend du contexte. Dans tous les cas, pour éviter les erreurs comme la mienne, n&#8217;oublier pas d&#8217;utiliser la <code>destroyMethod</code> pour libérer les ressources. (l&#8217;interface <code>ILifeCycle</code> de Java <a href="http://jira.springframework.org/browse/SPRNET-753">n&#8217;existe pas encore</a> dans Spring.net  mais la <a href="http://www.springframework.net/roadmap.html">1.2 sort en RC1 début mai</a>&#8230;).</li>
<li>Un &#8220;Timeout&#8221; peut vouloir dire &#8220;trop de connexion au serveur&#8221; <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Cette fameuse Factory de proxy WCF sera fournie dans Spring.net 1.2. j&#8217;aurais perdu moins de temps en <a href="http://forum.springframework.net/showthread.php?t=2936">prenant les sources des nightbuilds</a>&#8230; vive l&#8217;OpenSource!</li>
</ol>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/grozeille.wordpress.com/50/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/grozeille.wordpress.com/50/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grozeille.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grozeille.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grozeille.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grozeille.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/grozeille.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/grozeille.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/grozeille.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/grozeille.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grozeille.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grozeille.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grozeille.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grozeille.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grozeille.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grozeille.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&amp;blog=173450&amp;post=50&amp;subd=grozeille&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://grozeille.com/2008/04/30/timeout-wcf-au-bout-dun-certain-nombre-dappels/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fcf307a3a2899d162cabfd41241f17b9?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">grozeille</media:title>
		</media:content>
	</item>
	</channel>
</rss>
