Recently I wanted to send large files (several GB) from a rich desktop client to a web service. The client and service communicate using WCF and I thought that this would be quite easy. As it turns out it is but there are a few gotchas on the way.
I use a Pinnacle ShowCenter for as my network media player for playing back music and movies on my A/V equipment. It’s a nice bit of hardware but the software it comes with doesn’t fit my needs. Fortunately the player uses a simple web browser for it’s UI and this is served from the Pinnacle server so it’s possible to replace the server component with a new one that provides whatever functionality you like.
There are a few open source server packages out there for the ShowCenter (and other Syabas based media devices) but the one I use, and in my opinion the best of them, is the SwissCenter (available from www.swisscenter.co.uk).
This software is written using PHP, Apache and MySQL and runs on either Linux or Windows. However, on Windows there is a nice simple install option using another project called Simese (Simple Media Server). This provides a single installer for the Simese media server, PHP, MySQL and SwissCenter.
You can install this on a WHS quite easily, I just downloaded the latest build (1.45 Simese and 1.20.1 SwissCenter at the time of writing), logged on via terminal services and installed it. I made sure that I entered the media locations as UNC paths and that the user Simese was running as had access to the media locations and it all works fine. Upgrading the box to 2GB helped though since running this stuff on a standard HP MediaSmart with 512MB is a little slow.
In addition to installing Simese and SwissCenter I also installed MusicIP. This is an optional component that SwissCenter can use in order to create custom playlists based on similar music, you simply select a track in SwissCenter and then get a link to ‘play similar’, this functionality uses MusicIP to generate the playlist which the SwissCenter then plays.
Installing MusicIP on the WHS was also pretty easy, I just followed the instructions for a standard install on Windows. The only thing I needed to change was to change the user the service runs as to ensure it had access to my media.
Overall a nice little setup and I’m quite happy I can run it all from my home server now.
Visual Studio Team System has some nice testing feature, amongst which is the ability to record and playback web browsing as part of a web test. The recorder makes building web tests much easier that writing the test scripts by hand. I went to record a new web test today but the test recorder didn’t appear.
I’ve recently installed IE8, I don’t know if this was the culprit for breaking the recorder or not but fortunately the fix was quite easy. After a bit of searching I came across an entry on Michael Taute’s blog at blogs.msdn.com/mtaute/archive/2007/11/09/diagnosing-and-fixing-web-test-recorder-bar-issues.aspx.
This article contains several possible fixes for these kinds of problems, the one that worked for me was regarding VSTS 2008 and Vista 64 (I’m running on Server 2008 64 bit). I’ve included that particular fix below but have a look at the original article for others.
VSTS 2008 : Vista (64 bit) : Recorder bar does not appear when recording a new webtest
Fix: Vista caches the list of explorer bars you have available and the recorder bar was not included in your list. The fix is to force Windows to rebuild that cache. To do this, first make sure you have all Internet Explorer instances shut down, then open the 32 bit registry editor and delete the following keys:
[Note: by default, the 32 bit registry editor is located in %WINDIR%\SysWow64\RegEdt32.exe]
The next time you boot Internet Explorer, your explorer bar cache will be rebuilt and the recorder bar should be available.
I recently installed a Subversion server on my WHS box. In the past I’ve usually installed and configured Apache and mod_svn myself, but this time I decided to use the pre-packaged version from the people behind VisualSVN.
This version still uses Apache as the server however. Now I don’t like sending passwords in the clear over the net, especially to things like a source repository. The default install of VisualSVN does support SSL and comes with an SSL cert that you can use. However, since I have a cert for my WHS box anyway I thought it would be nice to be able to reuse that. In the end it was quite easy, the steps are below.
- Download OpenSSL from http://www.slproweb.com/products/Win32OpenSSL.html. You can download the Light version for this.
- Install on the machine you are going to work on (I did this on my desktop, doesn’t have to be WHS).
- Ensure that the OpenSSL bin directory is in your path (makes things easier)
- Export the cert from IIS or certmgr.msc on the WHS
- In IIS go to site properties for the WHS site and then directory security and click the server certificate button
- Then select export a current certificate and give it a filename
- Make sure you export the private key along with the cert (IIS export does this automatically) but using certmgr.msc you’ll need to select it
- Use OpenSSL to extract the private key and cert
- First export the key into a passworded file, then export the cert, finally remove the password from the key so Apache / VisualSVN can use it
- openssl pkcs12 –in mycert.pfx –nocerts –out key.pem
- openssl pkcs12 –in mycert.pfx –clcerts –nokeys –out cert.pem
- openssl rsa –in key.pem –out server.key
- Finally you have a cert (cert.pem) and key (server.key) you can use with Apache and VisualSVN. Just update the httpd.conf files to use those files. I dropped them into c:\certs on my box so I can share them between multiple apps.