Hi Chas,
Forgive me, but your solution seems a bit strange. You use a IIS application to launch a windows service? Windows service are intended to run continously in the background. A better architecture for you application would be to have the windows service continuously running in the background, have the iis application connect to the windows service using a webservice call (the webservice would be hosted in the windows service).
Regarding you question, there could be a lot of thing wrong. For example under which user account is the windows service running? Does this account have enough rights to open the excel file? Also normally windows services are not allowed to show an user interface. It is a option on a windows service "to allow interaction with the desktop"
You could use a tool like
process monitor to check under which account the file is being opened.
Hope this helps.