I asked a question a few weeks ago about this, found here: ServiceStack: URL Re-writing with Self-Hosted application
However, I'm encountering an issue when I create this application as a windows service. I get the following error when I browse the root URL of my application:
error CodeFileNotFoundExceptionmessage
Could not find file 'C:\Windows\system32\index.html'.
Here is what I have done:
var handleRoot = new CustomActionHandler((httpReq, httpRes) =>
{
    httpRes.ContentType = "text/html";
    httpRes.WriteFile("index.html");
    httpRes.End();
});
SetConfig(new EndpointHostConfig
{
    DebugMode = false,
    RawHttpHandlers =
    {
        httpReq => (httpReq.RawUrl == "/") ? handleRoot : null
    }
});
public class CustomActionHandler : IServiceStackHttpHandler, IHttpHandler
{
    public Action<IHttpRequest, IHttpResponse> Action { get; set; }
    public CustomActionHandler(Action<IHttpRequest, IHttpResponse> action)
    {
        if (action == null)
            throw new Exception("Action was not supplied to ActionHandler");
        Action = action;
    }
    public void ProcessRequest(IHttpRequest httpReq, IHttpResponse httpRes, string operationName)
    {
        Action(httpReq, httpRes);
    }
    public void ProcessRequest(HttpContext context)
    {
        ProcessRequest(context.Request.ToRequest(GetType().Name),
            context.Response.ToResponse(),
            GetType().Name);
    }
    public bool IsReusable
    {
        get { return false; }
    }
}
If I take this out and browse the root of my service, it works but I have /index.html appended onto the end where as I would like it to be / like it is when I host this as a console application