Problemas con $ locationProvider.html5Mode (verdadero)

He estado lidiando con algunos problemas de $ locationProvider en los que estoy atascado. Tengo una página simple de una sola página. Pero recibo el siguiente error:

     TypeError: Cannot read property 'replace' of undefined
        at trimEmptyHash (angular.js:10551)
        at Object.$locationWatch (angular.js:11399)
        at Scope.$get.Scope.$digest (angular.js:14217)
        at Scope.$get.Scope.$apply (angular.js:14488)
        at bootstrapApply (angular.js:1449)
        at Object.invoke (angular.js:4182)
        at doBootstrap (angular.js:1447)
        at bootstrap (angular.js:1467)
        at angularInit (angular.js:1361)
        at HTMLDocument.<anonymous> (angular.js:26065)

Mi archivo app.js es bastante simple ...

    var app = angular.module('app',
        [
            'ui.router'
        ]
    );

    app.config([
        '$stateProvider',
        '$httpProvider',
        '$locationProvider',
        '$urlRouterProvider',
        function ($stateProvider, $httpProvider, $locationProvider, $urlRouterProvider) {

            $locationProvider.hashPrefix('!');
            $locationProvider.html5Mode(true);

            $stateProvider
            .state('home',
            {
                url: '/',
                views: {
                    'aboutView':
                        {
                            template: function (params) {
                                console.log("home");
                                return 'home';
                            }
                        }
                }
            })
            .state('about',
            {
                url: '/about',
                views: {
                    'aboutView':
                        {
                            template: function (params) {
                                console.log('about')
                                return 'about';
                            }
                        }
                }
            })
            ;
        }
    ]);

Tengo el<base href="http://localhost/apps/uiv8/" /> establecido en mi archivo index.html. Entonces, cuando comento el código $ locationProvider, todo funciona bien en modo #. Puedo acceder a / # / about, etc. sin problemas. Tan pronto como vuelva a colocar las partes $ locationProvider, nada.

Un poco más sobre mi entorno ... Tenemos el MVC de asp.net aquí, y route.config está haciendo un {* url} para redirigir todo a la ruta predeterminada, e incluso he ido tan lejos como modificando IIS con reescrituras de URL para enviar al valor predeterminado, pero aún recibo el error de análisis anterior.

Entonces, ¿alguien tiene alguna idea de lo que está pasando?

Gracias Nick

Respuestas a la pregunta(2)

Su respuesta a la pregunta