Archives

Archives / 2009 / October
  • Authentication problems in Windows 2008 R2 and loopback IP

    We are migrating part of our infrastructure to Windows Server 2008 R2, and while preparing a DEMO environment we got bitten by this problem. In R2 (and Windows 7) security is a little tigher and NTLM authentication will not work if the endpoint trying to access is using a loopback IP address (127.0.0.1). This holds true even if using an alias in the hosts file.

    Some of the symthoms of this are getting soem error and audit events in the event log, for example: NTLM/Operational EventID 8001 and 8002 and LsaSrv EventID 6037.

    The resolution of this issue (not recommended for production) would be to disable the new "LoopbackCheck" security feature for the LSA (Local Security Authority) service. To do that you need to alter the registry and add the key defined below.

    For your convenience, you can copy & paste the text between the "==" and save it as a .reg file.

    ============================================================ 

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
    "DisableLoopbackCheck"=dword:00000001 

    ============================================================

    Hope it helps someone.

    Best regards,

    Andres G Vettori, VMBC, CTO

    Read more...

  • Problems migrating WebTest projects from VS2008 to VS2010

    If you fall into the same problem I did (WebTests project not being converted to the new VS2010 format) I found a workaround.

    I just removed the offending projects the then added back to the solution one by one. When loading each project VS ask me to convert them, and that works without problem. After closing and reopening the solution the WebTest projects load without any issue.

    Anyway, I will try to find out what really happened here. I let you know if found anything.

    Andres G Vettori, VMBC, CTO

    Read more...

  • Projects upgraded from VS2008 to VS2010

    Yesterday I did my first test migrating one of our our rather complex VS2008 solutions to VS2010 (and TFS 2010). The solution and projects upgrade went generally well, I only had a few minor things to fix I'm detailing below:

    • All WCF client proxies were automatically regenerated. This is not neccesarily bad but we had touched our generated code (for example, to add a #pragma warning disable 1591 to avoid failing compilation because of the missing XML comments). To solve this I only needed to undo the changes produced in the generated files and everything worked as usual.
    • The new VS and/or compiler seems to be more strict in some things. Compilation failed because it found a couple malformed XML configuration files, a a couple conflicts about references (projects referencing directly and indirectly different versions of the same component). Fixing those errors was easy and I'm happy to find them automatically in VS2010.
    • I had to uninstall WIX 3 and install the (experimental) WIX 3.5 with Votive support for VS2010. Wix projects didn't compiled at first so I had to manually edit the .wixproj file and change the tool path. Also the new WIX 3.5 has a known bug where some of the project variables have the wrong value (for example, var.project.ProjectDir now includes a trainling "/bin" that is clearly wrong). A quick fix is to include a "/.." in the source path to reference the root project folder, but this is probably going to need rolling back this hack after the bug is fixed.
    • Some projects didn't upgraded automatically (WebTests, for example) and I had to migrate them manually. I'm investigating a issue with this projects because VS2010 seems to prompt me to migrate the same projects EVERY time I open the solution.
    • Tests projects (Unit tests, for example) are migrated to Framework 4.0 automatically. Those projects cannot run or compile using a previous version of the CLR and therefore ALL its references need to be compiled for Framework 4.0 as well.

    Well, that's all for now...   I'm going to test some build scripts now...  wish me luck!

     Andres G Vettori, VMBC, CTO

    Read more...

  • Retina.NET support for Microsoft SQL Server 2008

    The latest version of Retina.NETm the open source ORM published on CodePlex has now explicit support for MS SQL 2008. The new DataStore now supports the new data types (DATETIME2, TIME, DATE, DATETIMEOFFSET) and the new FILESTREAM access modifier for BLOBs columns.

    Check it out at http://retina.codeplex.com and download the latests binaries or sources.

    Andrés G Vettori, VMBC, CTO

    Read more...

  • White paper: understanding WCF extensibility

    I have written a white paper on WCF extensibility and I would like to share it with the community so I have attached a copy to this post in Word 2003 format.

     Enjoy!

    Andrés G Vettori, VMBC, CTO

    Read more...

  • Faster builds with VSTS Team Build

     If you have big solutions with hundreds of projects and hundred of thoudsands lines of code, you know that by default compiling in the build server takes some time. One of the things that take most time is getting the sources to compile, and that's because by default the build script performs a FULL GET instead of a "normal" get (or incremental, just getting the things that changed from the last build).

    In order to instruct the build agent to perform an incremental for VS2005 get you need to modify the build script and include the following:

    <PropertyGroup Condition="Exists($(SolutionRoot))">
    <SkipClean>true</SkipClean>
    <SkipInitializeWorkspace>true</SkipInitializeWorkspace>
    <ForceGet>false</ForceGet>
    </PropertyGroup>

    For VS2008 you only need to add the following:

    ·         </ItemGroup>·            <PropertyGroup>·               <IncrementalBuild>true</IncrementalBuild>·          ·            </PropertyGroup>·         </Project>


    This means that the build script should not delete or initialize a previously existing workspace and don't try to force the GET operation for ALL sources. Another thing we can do to speedup the build process (specially in CI builds) is to avoid associating WorkItems with each build (that is only done on the RELEASE build done manually by the release manager), and therefore we need to include the following in the build script:

    <PropertyGroup Condition="$(QuickBuild)=='True'">

         <SkipLabel>true</SkipLabel>

         <SkipGetChangesetsAndUpdateWorkItems>true</SkipGetChangesetsAndUpdateWorkItems>

    </PropertyGroup>

    Hope you find this information useful, 

    Andres G Vettori, VMBC, CTO

    http://www.vmbc.com

    Read more...

  • Continuous Integration presentation at Microsoft

    A few days ago I presented the topic "Continuous Integration" to part of the Architect community in Argentina.

    The presentation was about how to achieve higher quality software by using Microsoft tools (VSTS, Sharepoint, Office, and more) and how our team solved some of the most common issues in software development projects by defining and fine tuning methodologies, processes, tools and mindset.

    I try to be practical and talk and show HOW do we do things, rather than giving long theorical explanations about the topic. Of course the topics touched diverse points of interest like requirements approval process for external & internal clients, formal registration & audit of approval proof, publication of metrics and project status to internal & external clients, ALM processes for heterogeneus platforms, and much (MUCH) more.

    I really enjoyed giving this talk and the audience was really active and interested in our experience, they asked a lot of very good questions and It was a real pleasure to interact with them and discuss such challenging topics with bright people.

    Juan Ladetto, a Software Architect from Microsoft Argentina coordinating this Architect Community activities, has posted about this presentation and if interested you can download the PPT from there:

    http://blogs.msdn.com/juanl/archive/2009/10/16/resumen-desayuno-nlost.aspx

    Juan, thanks again for the opportunity and hope it hapens again!

    Best regards,

    Andrés G Vettori, VMBC, CTO

    http://www.vmbc.com

    Read more...