# Tuesday, January 30, 2007

I was just about to generate a client (proxy) for a WCF service on a computer (in a domain) on customer site when svcutil.exe returned the following:

Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 3.0.4506.30]
Copyright (c) Microsoft Corporation. All rights reserved.

Error: Cannot obtain Metadata from http://127.0.0.1/CallahanWeb/service.svc?wsdl

If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455.

WS-Metadata Exchange Error
URI: http://127.0.0.1/CallahanWeb/service.svc?wsdl

Metadata contains a reference that cannot be resolved: 'http://127.0.0.1/CallahanWeb/service.svc?wsdl'.
<?xml version="1.0" encoding="utf-16"?><Fault xmlns="http://www.w3.org/2003/05/soap-envelope"><Code><Value> Sender </Value><Subcode><Value xmlns:a="http://schemas.xmlsoap.org/ws/2005/02/sc"> a:BadContextToken </Value></Subcode></Code><Reason><Text xml:lang="de-DE">The message could not be processed. This is most likely because the action 'http://schemas.xmlsoap.org/ws/2004/09/transfer/Get' is incorrect or because the message contains an invalid or expired security context token or because there is a mismatch between bindings. The security context token would be invalid if the service aborted the channel due to inactivity. To prevent the service from aborting idle sessions prematurely increase the Receive timeout on the service endpoint's binding.</Text></Reason></Fault>

HTTP GET Error
URI: http://127.0.0.1/CallahanWeb/service.svc?wsdl

The document was understood, but it could not be processed.
- The WSDL document contains links that could not be resolved.
- There was an error downloading 'http://dpc00000198.clients.eden/CallahanWeb/service.svc?wsdl=wsdl0'.
- The request failed with HTTP status 407: Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy service is denied. ).


If you would like more help, type "svcutil /?"

Seems that svcutil does not support http proxies that require authentication... After i disabled the proxy in IE's settings it worked ;-)

Tuesday, January 30, 2007 12:55:19 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [3]  | 
# Friday, December 22, 2006

Looking back on 2006 ... that was a lot ... and the reason I was a bit quiet

  • Together with Clemens I wrote a message based waterfall-caching-framework which can be hooked into a web service architecture for a customer.
  • For Uwe Baumann of Microsoft Germany I wrote a localizable ASP.NET starter kit (with a discussion forum and a really nice membership administration API) for coding4fun.de.
  • I distinguished technical and architectural fires (mostly ASP.NET, Web Services and ADO.NET) in Germany, Luxembourg and Sweden.
  • Consulted half a dozen customers from several industries throughout Germany.
  • As a trainer and speaker on conferences and trainings I've bin to Germany, Poland, Denmark, Greece, Ukraine and England
    • DDD was really one of the best events out there!!!
  • Together with Stephan I organized the biggest regional software developer community event (NRW06) and connected .NET, PHP, Java and Linux developers.
  • I had an interesting fight: Me vs. Java consultant (to let a customer make a decision on IT strategy).
  • Worked together with Michael, the newtelligence crew, Microsoft's DPE in Germany and the connected systems team in redmond on a security analysis on Windows Communication Foundation (WCF) for the Federal Office for Information Security of the German government (BSI).
  • Created material and did 3 architecture gigs for Microsoft EMEA.
Hmmmm, I'm pretty sure I forgot something...

I'd like to thank everybody I worked with. May you all have a merry XMAS and a happy new year.

Friday, December 22, 2006 10:12:21 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [4]  | 
# Thursday, December 21, 2006

I just got "tagged" together with Steve, Don, Udi and Nicholas  by Clemens. So here are my five:

  1. The nickname "Lennybacon" was given to me by my girlfriend and is (probably) based on my middle name "Leonard" and the fact that I like bacon for breakfast.
  2. My surname is written without a "c" which is quite strange for most Germans (beside my certificate of birth about 80% of the official documents spell me the wrong way). The English way of spelling is because of my father who is an American and his forefathers who came from England.
  3. I started working with computers beside school and administered Novell and NT Networks.
  4. I programmed my first Windows application in 1996 using Delphi. At this time I still wanted to become a Carpenter. The only reason I did not become one is that in that company they started to drink alcohol at 8 o'clock (work started at 6).
  5. The oldest piece of a computer I own is a 15x15x0.5 inch disc with 4 MB storage. It was a present from a customer and given to me after finishing a project.

And the Oscar Tag goes to:

Michael, Thomas, Kenny, Bob and Craig

Thursday, December 21, 2006 5:32:33 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Friday, November 17, 2006
Friday, November 17, 2006 4:38:47 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Friday, November 03, 2006

DDD (developer developer developer) is back and will be held on Saturday 2nd December at the Microsoft Offices in Reading.

It is a pleasure for that I've been voted again to speak. This time I'll present "DataAccess Layers - Convenience vs. Control and Performance?" on my own and "Decoupling Service Oriented Backend Systems [with Windows Communication Foundation (WCF)]" together with my colleague Michael.

I'm looking forward to meet Craig, Barry, Oliver, Phil, Ian and all the U.K. Community.

The official DDD Site
http://www.developerday.co.uk/

The DDD Sign up
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032315483&Culture=en-GB

Michael Willers
http://staff.newtelligence.com/MichaelW/

Craig Murphy
http://www.craigmurphy.com/

Barry Dorrans
http://idunno.org/

Oliver Sturm
http://www.sturmnet.org/blog/

Phil Winstanley
http://weblogs.asp.net/plip/

Ian Cooper
http://www.dnug.org.uk/

Friday, November 03, 2006 12:56:14 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Tuesday, October 31, 2006

I really like the idea Doug came up with in his latest post...

http://www.douglasp.com/blog/2006/10/31/InventingTheFuture.aspx

Tuesday, October 31, 2006 8:20:58 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Sunday, August 13, 2006

Microsoft introduces with Vista/IE7/Office2007 the Microsoft RSS Platform -

For some reasons my IE is not able to export the feeds that I read in IE7 and Outlook 2007 to OPML.

I had a look at the API and wrote this small console applictaion to export my feed list to the OPML format.

using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Xml;
 
using Microsoft.Feeds.Interop;
using System.Collections.Generic;
 
namespace RssWindowsPlatformOpmlExporter
{
    class Program
    {
        static void Main(string[] args)
        {
            string pathToExport = "D:\\temp\\feeds.opml";
            if (args.Length > 0)
            {
                pathToExport = args[0];
            }
 
            FeedsManager mgr = new FeedsManager();
            Queue<IFeedFolder> queue = new Queue<IFeedFolder>();
            queue.Enqueue(mgr.RootFolder as IFeedFolder);
 
            while (queue.Count > 0)
            {
                IFeedFolder currentFolder = queue.Dequeue();
                IFeedsEnum subFolders = (IFeedsEnum)currentFolder.Subfolders;
 
                for (int i = 0; i < subFolders.Count; i++)
                {
                    queue.Enqueue((IFeedFolder)subFolders.Item(i));
                }
 
                using (XmlWriter opml = XmlWriter.Create(pathToExport))
                {
                    opml.WriteStartDocument();
                    opml.WriteStartElement("opml");
                    opml.WriteAttributeString("version", "1.0");
 
                    IFeedsEnum feeds = (IFeedsEnum)currentFolder.Feeds;
                    for (int i = 0; i < feeds.Count; i++)
                    {
                        IFeed feed = (IFeed)feeds.Item(i);
 
                        try
                        {
                            if (!string.IsNullOrEmpty(feed.Title) 
                                && !string.IsNullOrEmpty(feed.DownloadUrl))
                            {
                                opml.WriteStartElement("outline");
                                opml.WriteAttributeString("title", feed.Title);
                                opml.WriteAttributeString("xmlUrl", feed.url);
                                opml.WriteEndElement();
                            }
                        }
                        catch (COMException e)
                        {
                            Console.WriteLine(
                                "Error getting feed: {0}", 
                                e.Message);
                        }
                    }
 
                    opml.WriteEndElement();
                    opml.WriteEndDocument();
                }
            }
        }
    }
}
C# | Misc
Sunday, August 13, 2006 2:42:42 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Wednesday, August 09, 2006

I'm currently helping a customer to migrate a *really large* web application from ASP.NET 1.1 to 2.0 (round about 130 projects in the master solution...).

I always liked FxCop but enabling "Code Analysis" manually is way to complicated (or not geekish enough?!?). So I wrote this small macro this morning.

Imports System

Imports System.Diagnostics

Imports System.Text

Imports System.Windows.Forms

 

Imports EnvDTE

Imports EnvDTE80

 

Public Module CodeAnalysis

 

    Public Sub EnableFxCop()

        Dim objProj As Object()

        Dim proj As Project

 

        For i As Integer = 1 To DTE.Solution.Projects.Count

            proj = DTE.Solution.Projects.Item(i)

            EnableFxCop(proj)

        Next

    End Sub

 

    Private Sub EnableFxCop(ByVal project As Project)

 

        If project.Kind = "{66A26720-8FB5-11D2-AA7E-00C04F688DDE}" Then

            'Filter Project Folders

            For Each subProject As ProjectItem In project.ProjectItems

                EnableFxCop(subProject.SubProject)

            Next

        Else

            project.ConfigurationManager.ActiveConfiguration.Properties.Item( _

                "RunCodeAnalysis").Value = "True"

 

            project.ConfigurationManager.ActiveConfiguration.Properties.Item( _

                "CodeAnalysisRules").Value = String.Concat( _

                    "-Microsoft.Design#CA2210;", _

                    "-Microsoft.Design#CA1020;", _

                    "-Microsoft.Naming#CA1705;", _

                    "-Microsoft.Naming#CA1709")

            project.Save()

        End If

    End Sub

End Module

Wednesday, August 09, 2006 1:50:21 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [2]  |