November 2007
M T W T F S S
    Dec »
 1234
567891011
12131415161718
19202122232425
2627282930  

Archive for November, 2007

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

24
Nov

Making MOSS 2007 Anonymous

It is relatively easy to make a SharePoint site anonymous for outside users. The easiest way I have found is to just go into any library and use it to get to the parent permissions.

Go to any library and edit the settings.

Edit the permissions.

Manage the permissions of the parent, this will lead you all the way to the top.

Now edit anonymous access.

Anonymous access for the entire site.

Now that you have set anonymous access, a user can still try and get a logged in by dropping the page name off of the url. If you would like the site to be totally anonymous you will need to run this stsadm.exe command from the prompt on the MOSS server. stsadm is located in C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN.

stsadm -o activatefeature -filename ViewFormPagesLockDown\feature.xml -url http://YourUrl:Port -force

24
Nov

Site number limitation in SharePoint MOSS 2007

For some reason Microsoft decided to limit the number of sites in the navigation to 50. If you have a large SharePoint organization or have imported from MS-CMS that you will almost certainly break that. But after a lot of bang my head on the wall I call MS
support and got the answer.

In the web.config for the site you are working on, located in C:\Inetpub\wwwroot\wss\VirtualDirectories\(Your port number), find name=GlobalNavSiteMapProfider. From there change the next 8 lines. Add DynamicChildLimit=”75″ to the end of the each one. You can change it it any number you like but 75 was good for me. Setting it to ‘0′ makes it unlimited. Sorry this is not web friendly.

<add name=”GlobalNavSiteMapProvider” description=”CMS provider for Global navigation” type=”Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” NavigationType=”Global” EncodeOutput=”true” DynamicChildLimit=”75″/>
<add name=”CombinedNavSiteMapProvider” description=”CMS provider for Combined navigation” type=”Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” NavigationType=”Combined” EncodeOutput=”true” DynamicChildLimit=”75″ />
<add name=”CurrentNavSiteMapProvider” description=”CMS provider for Current navigation” type=”Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” NavigationType=”Current” EncodeOutput=”true” DynamicChildLimit=”75″ />
<add name=”CurrentNavSiteMapProviderNoEncode” description=”CMS provider for Current navigation, no encoding of output” type=”Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” NavigationType=”Current” EncodeOutput=”false” DynamicChildLimit=”75″ />
<add name=”SiteDirectoryCategoryProvider” description=”Site Directory category provider” type=”Microsoft.SharePoint.Portal.WebControls.SiteDirectoryCategoryProvider, Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” DynamicChildLimit=”75″ />
<add name=”MySiteMapProvider” description=”MySite provider that returns areas and based on the current user context” type=”Microsoft.SharePoint.Portal.MySiteMapProvider, Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” DynamicChildLimit=”75″ />
<add name=”MySiteLeftNavProvider” description=”MySite Left Nav provider that returns areas and based on the current user context” type=”Microsoft.SharePoint.Portal.MySiteLeftNavProvider, Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” DynamicChildLimit=”75″ />
<add name=”UsagePagesSiteMapProvider” description=”Provider for navigation in Portal Usage pages” type=”Microsoft.SharePoint.Portal.Analytics.UsagePagesSiteMapProvider, Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” DynamicChildLimit=”75″ />
23
Nov

Hello world!

Well well, I am a member of the blogosphere. I would like to that Jonathan Carter @ Lost In Tangent for leading my to this awesome software, Word Press. Works like a champ and lets me play with PHP/MYSQL again. Brings back memories.