<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Benjamin Guinebertière : Web Infrastructure</title><link>http://blogs.msdn.com/benjguin/archive/tags/Web+Infrastructure/default.aspx</link><description>Tags: Web Infrastructure</description><dc:language>fr-FR</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>ISA Server 2004/2006 would prevent local Windows Update</title><link>http://blogs.msdn.com/benjguin/archive/2007/09/14/isa-server-2004-2006-would-prevent-local-windows-update.aspx</link><pubDate>Fri, 14 Sep 2007 15:10:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4909645</guid><dc:creator>benjguin</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/benjguin/comments/4909645.aspx</comments><wfw:commentRss>http://blogs.msdn.com/benjguin/commentrss.aspx?PostID=4909645</wfw:commentRss><description>&lt;p&gt;From an ISA Server computer, when you try to check Microsoft or Windows Update from IE, you get the initial page, but when you want to check updates you get a 0x80072EFD error.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;To avoid that, configure Internet Explorer proxy to the local ISA Server on the &lt;span style="text-decoration:underline"&gt;Internal&lt;/span&gt; IP Address
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Exemple: your ISA Server has an internal address of 192.168.1.1, go to IE LAN Settings and use 192.168.1.1:8080 as web proxy.
&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4909645" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/benjguin/archive/tags/Web+Infrastructure/default.aspx">Web Infrastructure</category><category domain="http://blogs.msdn.com/benjguin/archive/tags/KB/default.aspx">KB</category></item><item><title>Application Pool with a domain user account identity</title><link>http://blogs.msdn.com/benjguin/archive/2006/09/21/765231.aspx</link><pubDate>Fri, 22 Sep 2006 01:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:765231</guid><dc:creator>benjguin</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/benjguin/comments/765231.aspx</comments><wfw:commentRss>http://blogs.msdn.com/benjguin/commentrss.aspx?PostID=765231</wfw:commentRss><description>&lt;U&gt;Context&lt;BR&gt;&lt;BR&gt;&lt;/U&gt;Windows Server 2003 / IIS6&lt;BR&gt;- Virtual Directory running under an application pool with a domain user account identity&lt;BR&gt;- Virtual Directory security is set to Integrated authentication only&lt;BR&gt;- Trying to access this virtual directory from a domain user account (same domain as app pool identity account)&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="TEXT-DECORATION: underline"&gt;Symptoms&lt;/SPAN&gt;&lt;BR&gt;From web server, no pb. &lt;BR&gt;From another machine, domain user is challenged for user name and password and fail in 401. HTTP Error 401.1 - Unauthorized: Access is denied due to invalid credentials&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="TEXT-DECORATION: underline"&gt;Resolution&lt;BR&gt;&lt;/SPAN&gt;Using NTLM only solves the issue&lt;BR&gt;This can be done with the following command (typically from C:\Inetpub\AdminScripts)&lt;BR&gt;&lt;PRE&gt;cscript adsutil.vbs w3svc/NtAuthenticationProviders "NTLM"&lt;/PRE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=765231" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/benjguin/archive/tags/Web+Infrastructure/default.aspx">Web Infrastructure</category><category domain="http://blogs.msdn.com/benjguin/archive/tags/KB/default.aspx">KB</category></item><item><title>Should I deploy my C# code to a SQL Server 2005 stored procedure?</title><link>http://blogs.msdn.com/benjguin/archive/2006/04/04/568506.aspx</link><pubDate>Wed, 05 Apr 2006 01:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:568506</guid><dc:creator>benjguin</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/benjguin/comments/568506.aspx</comments><wfw:commentRss>http://blogs.msdn.com/benjguin/commentrss.aspx?PostID=568506</wfw:commentRss><description>&lt;P&gt;I think one of the criteria is: Will this make SQL Server cluster consume less&amp;nbsp;resources (CPU, Memory, Network bandwith, ...)&amp;nbsp;to have the C# code inside the database or outside the database?&lt;/P&gt;
&lt;P&gt;The reason is that in a typical Web infrastructure where you have a SQL cluster that does not scale out as easily as the other servers (like web servers in the farm), the SQL cluster is the most precious part of the infrastructure.&lt;/P&gt;
&lt;P&gt;In a scenario where you have data set operations, like calculating a surface with points stored in the DB, having C# code inside the database is better, because it will cost less to the SQL Server to process calculation inside the DB and not have the whole data transmitted to the Web or calculation Servers.&lt;BR&gt;On the other hand, if you need to do expensive calculations on few data, please do it outside the database.&lt;/P&gt;
&lt;P&gt;Another criterion is to avoid having SQL Server connect elsewhere. Typical architectures have most servers connect to SQL Server and SQL Server connect to nearly nothing (just an SMTP server, and maybe some external OLE DB data sources).&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=568506" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/benjguin/archive/tags/Web+Infrastructure/default.aspx">Web Infrastructure</category><category domain="http://blogs.msdn.com/benjguin/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category></item><item><title>Session State was not kept in a web farm</title><link>http://blogs.msdn.com/benjguin/archive/2006/04/04/568437.aspx</link><pubDate>Tue, 04 Apr 2006 21:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:568437</guid><dc:creator>benjguin</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/benjguin/comments/568437.aspx</comments><wfw:commentRss>http://blogs.msdn.com/benjguin/commentrss.aspx?PostID=568437</wfw:commentRss><description>One of the ways to replicate content from a Web Server in an IIS 6 Web Farm to other servers in the farm is to use IISMT tool.&lt;BR&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2aefc3e4-ce97-4f25-ace6-127f933a6cd2&amp;amp;displaylang=en"&gt;IISMT&lt;/A&gt; is a migration tool but it can also be used to "migrate" copy content and metabase configuration from IIS 6 to another IIS 6 server.&lt;BR&gt;&lt;BR&gt;On a platform where this method was used (with ASP.NET 2.0), we encountered an issue: session was not kept while machineKey section in config file was well configured. The issue appeared with State Server as well as SQL Server.&lt;BR&gt;&lt;BR&gt;In order to check that did not come from application, we reproed the problem by adding the two following files in ASP.NET application folder:&lt;BR&gt;DebugSession.aspx which contains:&lt;BR&gt;&lt;FONT face="Arial Narrow"&gt;&lt;PRE&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true"  CodeFile="DebugSession.aspx.cs" Inherits="_DebugSession" %&amp;gt;

&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;

&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" &amp;gt;
&amp;lt;head runat="server"&amp;gt;
    &amp;lt;title&amp;gt;Session&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;form id="form1" runat="server"&amp;gt;
    &amp;lt;div&amp;gt;
        &amp;nbsp;&amp;lt;/div&amp;gt;
    &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/PRE&gt;&lt;/FONT&gt;&lt;BR&gt;and DebugSession.aspx.cs which contains:&lt;BR&gt;&lt;FONT face="Arial Narrow"&gt;&lt;PRE&gt;using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _DebugSession : System.Web.UI.Page 
{

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["now"] == null) Session["now"] = string.Empty;
        Session["before"] = Session["now"];
        Session["now"] = Guid.NewGuid().ToString();

        Response.Write("&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Key&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Value&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;");
        Response.Write(string.Format("&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Session ID&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;{0}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;", Session.SessionID));

        foreach (string key in Session.Keys)
            Response.Write(string.Format("&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;{0}&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;{1}&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;", key, Session[key]));
        
        Response.Write("&amp;lt;/table&amp;gt;");
    }
}
&lt;/PRE&gt;&lt;/FONT&gt;&lt;BR&gt;Calling this DebugSession.aspx and refreshing it showed that session variables were definetly different on both servers (there were 2 in the farm).&lt;BR&gt;&lt;BR&gt;By investigating further we found the issue came from the site having a different ID on the two servers.&lt;BR&gt;One was at /LM/W3SVC/1, the other one was /LM/W3SVC/2 because that's the way IISMT copies configuration by default, except when you add the following command arguments: "/siteID replace"&lt;BR&gt;So we deleted the Web Site on the second server and recreated it with the IISMT command line ended by /siteID replace&lt;BR&gt;&lt;BR&gt;Please check IISMT /? for further details.&lt;BR&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=568437" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/benjguin/archive/tags/.NET+Framework+2.0+development/default.aspx">.NET Framework 2.0 development</category><category domain="http://blogs.msdn.com/benjguin/archive/tags/Web+Infrastructure/default.aspx">Web Infrastructure</category></item></channel></rss>