May 2012
M T W T F S S
« Jan    
 123456
78910111213
14151617181920
21222324252627
28293031  

Author Archive for Chris Auer



28
Dec

How do you know your a nerd?

Because you get excited by things like this, SharePoint Conference 2008. Holy crap I need a girl friend before I start using pocket protectors. But hey, I have a great job and knowing as much as I can makes it even better.

28
Dec

Speaking of waiting impatiently, TFS 2008 volume license. [foot tappng]

For some unknown reason when Microsoft decided to release TFS for trial and WorkGroup (5 users) but not for a version for the larger companies that are supported by Microsoft. They decide to make use wait until January of 08. I want to get off of Beta 2. WAITING??

You can read the details onĀ  Brian Harry’s blog.

28
Dec

TFS Proxy server in non trusted remote domain

I ran into a problem that I am sure more people than me run into. I had to install TFS into a remote office of developers that are contracted. To make it worse the remote office is 5000 miles away. Now since the developers are not employed by us I have the choice:

1. Leave them in their own domain and figure out how to make the remote domain work with TFS.
or

2. Connect their AD to ours and deal with the trust issues.

I decided on #1. Now I am a network guy so setting up the VPN between the two offices was a piece of cake. I dropped a WatchGuard Edge onto the remote next work and connected it to our home office for a secure VPN.

Now for the fun part. The proxy server connects to the main TFS server using the Identity of the Application Pool for the TFS Proxy Server Web Site. Since the remote AD and the TFS AD are not in the same domain, they can not authenticate to each other. But there is a hack.

In this scenario we will use 3 devices, Proxy server (PServer), TFS server (TServer), and remote client (client). There are two domains HomeAD (TFS server domain) and RemoteAD (Proxy and client domain).

TServer is in HomeAD
PServer is in RemoteAD
client is in RemoteAD

The hack is to create a local user on TServer, we will use proxyUser with a password or proxy123. Make that user a local admin and add that user to TFS.

In visual studio, in Team Explorer, right click on the TFS server (TServer), Team Foundation Server Settings, Group Membership. Click on Team Foundation Administrators then the properties button. Select the ‘Window User or Group’ radio button then Add. Add proxyUser and select OK. The user proxyUser is now an Administrator for the TFS server.

Now on the remote domain, RemoteAD, add the user proxyUser with the same password, proxy123.

On the TFS Proxy server open IIS. Locate the App Pool Team Foundation Server and open it. On the identity tab set the logon user to RemoteAD/proxyUser with proxy123 as the password. Run iisreset to reset the web site. Goto http://localhost:8081/VersionControl/v1.0/ProxyStatistics.asmx. Click Invoke. If you get XML that lists number of file fetched, files missed, etc.. then the link to the main TFS is up.

The client is simple. The client’s machine and username are in the RemoteAD domain. When the user connects to the TFS Proxy server (PServer), it will use the users login for the RemoteAD. When the user connects to the real TFS server (TServer) for check-ins and to get the security token, they will use their AD account that has been set up in HomeAD.

So the path goes as follows:

User Ted connects to the Main TFS using an account created for him in HomeAD, HomeAD\Ted2. He gets a token from that TFS and give it to the Proxy using his local AD creds, RemoteAD\Ted. He gets files from the Proxy, who gets the files from the Main TFS using the creds RemoteAD\proxyUser. That login gets translated into TServer\proxyUser for authentication. When Ted checks in, he uses the HomeAD\Ted2 login again.

Remote TFS

18
Dec

Web References and Debugging.

I ran into a problem today with a friend who runs a few sites like PhoneDog.com and ButterflyEffects.com. He had an issue with page loads being very very slow for no reason at all. We must have spent two hours looking into firewall, vpn, network and server issues. None of them were found to be the issue. All we knew was that it ran like greased lightning when we were on the local network of the host server. A little more tested showed that it seemed to be the cached files not being cached. Even though IE and FF were set to cache the files, it seemed like they were being downloaded every time.

Well I finally discovered that when a .NET site is set to debug, the web reference files are set to private. And because of that they are re-downloaded every time. This is no big deal, but when you use a lot of controls like Rad Grid and compiled images they load the server up horribly. You can see over 1 MB being downloaded on every page. And NONE of that shows up in the source code. You see you have a 80k source code size, but if you open you temp files you will find a Meg of files downloaded every time.

Well, in a 2.0 site, just open the web.config, find the debug section and set it to false. That will mark the web references are public and cacheable.

<compilation debug=”false”>

Enjoy

06
Dec

A server to rule all servers!

Today I got an early Christmas present, a server 2008 virtual server tour. If you are like me, and there are a lot of us, you are a programmer / network admin for your company. I get to spend half my time working code and the other working network issues and development. That is why you will see a lot of post from me that involve a lot more than programming.

Well Microsoft finally did the readiness Live Meeting for server 2008 virtualization. Now let me tell you have have played around with 2008 a little bit and I like it as much as I like Vista. I dont. It seems bloated and very cumbersome to me. I have a very hard time doing some of the most simple tasks. I really hated it and swore it would be in SP1 before I started to install it on my network. Well that is not longer true. I have been getting more and more involved with virtual servers ever since MicroSoft came out with MSVS 2005 R2. That was a uge step in the right direction for MicroSoft and there virtual server platform. You see, I once got a chance to play with VMWare aka my Cadilac. And man what a dream to get behind the wheel of a WMWare ESX server. It has everything I could ever need. It was fast, smooth and packed with goodies. But dad wouldn’t give me the money to buy that Caddy, I only had enough money to buy the Yugo, and it was what I thought it was. So I crowned it’s ass. It was slow and unimpressive but good enough to get me to work. It worked, and that was it.

But now that Yugo has turned into a 2008 Corvette. And man is it sweet!!! Dad gave me the keys Microsoft Server 2008 virtual server which is now built into Windows Server 2008. It has everything you need and it is a direct attack on VMWare stake of the virtual server market.

Virtual Server 2008 now directly links to Intel VT and V-AMD chip’s virtual technology to allow the guest server direct access to hardware. The hard drives are now writing data directly to the host hard drives. Not thru a software layer in the host os, slowing it down. Guest servers can now be clustered with other host servers for a fail over of the guest OS. Handling the fail over of the host OS is still up to you. You can now move a live guest server from one server to another to load balance the host server at will. I am sure that like VMWare they will build a utility that will move the guest server for you for an automated load balancing platform. Multi processors are now supported inside the guest server. 64 bit is also supported in the guest servers now. VS2008 will let you take snap shots of your guest severs for a scheduled backup. The snapshots are a lot like DPM 2008 in that it is a byte level backup of the data on the disk on a changing bytes basis. I haven’t loaded any virtual servers up on 2008 yet because all of my 64bit servers are in production use. I only have older 32 bit servers for my testing. But now seeing this, I will get a 64 bit server in to load up with RC1 2008 and test out the servers. I am sure I will love what I get, fast, easy and reliable.

We currently have about 30 servers in our company. In the last year I have created 10 virtual servers and saved my company about $20,000 in needed hardware. With VS 2008 I am hopeful to get one more AD, Exchange 2007, SharePoint, TFS and some dev servers into VS enviorment. This is going to be a great year. Below are some images from the preview.

console.jpg

tech.jpg

mutilproc.jpg

livepush.jpg

features.jpg

cluster.jpg

28
Nov

TFS in a remote location using TFS proxy 2008.

Microsoft Team Foundation Server (TFS) is a great tool, it really is. TFS is highly available, robust, centralized, versioned and easily recoverable. At my company, we use it for everything. Every project, every solution we have is on it. But it has an issue, well its a flaw. You have to be connected to it all the time. If you aren’t you get lots of wonderful errors and alerts that are soon followed by more. Now put it in todays world where programmers aren’t all located in the same building, state or even country. Connecting to the Team Foundation Server now gets a little more complicated and problematic. What we all want is a TFS in every location that is syncing up with a master (peer to server) or each other (peer to peer). Microsoft kind of fixed this, and I mean ‘kind of’.

When Microsoft released TFS they also released Team Foundation Server Proxy (TFSP). TFSP allows you grab source files from the remote server, but not check them in. You still have to check them in directly to the master TFS server farm. That really irritates me. If you can go threw the work of getting the files from the server why not add a system to allow the data to operate bi-directionally. But maybe the next version will give me that :)

So lets get down to the install.

First thing you need to know is that TFSP has to be install on Server 2003 server. I have tried to install it on XP for a remote location on a budget, but that is a no go.

On your Server 2003 open your TFS media and select Team Foundation Server Proxy option.
TFSP1

After selecting your file locations you have to enter your ‘Service Logon Account’. This is the account that is used as the service account on the master TFS server. If you look at the services on the TFS server you will find it as the logon account for Visual Studio Team Foundation Server Task Scheduler.

TFSP3

Enter the same user and password in the form .

TFSP2

The rest of the install is spent installing .NET 3.5 and the TFSP. After the install is done you need to edit the Proxy.Config. The config is located at %ProgramFiles%\Microsoft Visual Studio 2005 Team Foundation Server\Web Services\VersionControlProxy\proxy.config. When reading any of the posts on the net, you will find most of them for TFSP 2005. When installing it during 2008 beta 2 I ran into a problem of it not being able to connect to the master TFS server. After a lot of testing and some docs from MSDN I found the answer. You can find my problem post here . The important information is that in 2008 the server web path has changed, highlighted below.

<?xml version=”1.0″ encoding=”utf-8″?>
<ProxyConfiguration
xmlns:xsd=”http://www.w3.org/2001/XMLSchema
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“>
<Servers>
<Server>
<Uri>http://REAL_TFS_SERVER:8080</Uri>
</Server>
</Servers>

<!– Proxy file cache root folder –>
<CacheRoot>C:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\VersionControlProxy\Data</CacheRoot>

<CacheLimitPolicy>
<!– Cache limit expressed as percentage of disk space –>
<PercentageBasedPolicy>75</PercentageBasedPolicy>

<!– Cache limit expressed as MB –>
<!– <FixedSizeBasedPolicy></FixedSizeBasedPolicy> –>
</CacheLimitPolicy>

<!– Percentage of cache size that needs to be freed up, on hitting cache limit –>
<CacheDeletionPercent>10</CacheDeletionPercent>

<!– Indicates how often (number of hours) the proxy statistics information should be persisted to a file–>
<StatisticsPersistTime>1</StatisticsPersistTime>

<ReaderChunkSize>1048576</ReaderChunkSize>
<WriterChunkSize>1048576</WriterChunkSize>
</ProxyConfiguration>

Now that the server is install and connecting to the master farm we can configure the client to access the proxy to get files. You will still need to configure your TFS client as normal because remember you are checking in directly to the master. And when you ‘Get Latest’, what you are actually doing in connecting to the master, getting a certificate from the master that describes what you have access to and then you give that certificate to the proxy. Kind of a cheap way to do security, but thats what they did :( . Things can be improved here. On the client in Visual Studio goto Tools > Options > Source Control. Select the Use Proxy Server checkbox, enter your TFSP server name and enter 8081 for the port. Remember the TFS server port by default is 8080 and TFSP is 8081. Once that is done, select a project and do a ‘Get Latest’. You will see that your files are now in the Cache folder you specified during the install, encrypted.

TFSP4

Remember that with TFSP you can use one server to proxy many other TFS servers. If you notice in the cache folder, the first folder is a GUID. That is the server ID. If you add a lot of servers, they will all be different GUIDs in that folder.

Enjoy TFS and lets hope MS fixes some of those short comings.

Chris

24
Nov

FSU for the win!

Oh how the mighty have fallen. I have been a FSU fan since the birth of Christ and this year was bad. But now Florida throws 45 on FSU like they were Syracuse. God this has to get better from here. But at least we still have Jen Sterger!

FSU