Sure thing - there you go. This gets around the install problem, but
like I said, the service won't start - haven't been able to dig into
that to diagnose yet...

Thanks,
Matt

On Thu, Jan 29, 2009 at 6:44 PM, Ayende Rahien <[email protected]> wrote:
> Can you create a patch? It is hard for me to see what was changed.
>
> On Thu, Jan 29, 2009 at 6:23 PM, Matt Burton <[email protected]> wrote:
>>
>> No matter what combination I try I wind up with the following error
>> when attempting to install a service using the host...
>>
>> C:\dev\rsb-spike\Services\bin\Debug>Rhino.ServiceBus.Host.exe
>> /action:Install /asm:"Services.dll" /name:"ApplicationServices"
>> Installing service ApplicationServices...
>> Creating EventLog source ApplicationServices in log Application...
>> System.InvalidOperationException: Cannot get service file name.
>>   at System.ServiceProcess.ServiceInstaller.Install(IDictionary
>> stateSaver)
>>   at System.Configuration.Install.Installer.Install(IDictionary
>> stateSaver)
>>   at Rhino.ServiceBus.Host.Actions.InstallAction.Execute(ExecutingOptions
>> options) in C:\dev\open-source\rhino-tools.ti
>>
>> p\trunk\rhino-service.bus\Rhino.ServiceBus.Host\Actions\InstallAction.cs:line
>> 18
>>   at Rhino.ServiceBus.Host.Program.Main(String[] args) in
>> C:\dev\open-source\rhino-tools.tip\trunk\rhino-service.bus\Rh
>> ino.ServiceBus.Host\Program.cs:line 31
>>
>> I hacked on it for a bit and was able to get the service to install by
>> changing the InstallAction implementation to the following:
>>
>> public void Execute(ExecutingOptions options)
>> {
>>
>>    var installer = new ProjectInstaller
>>    {
>>        DisplayName = options.Name,
>>        Description = options.Name,
>>        Context = new InstallContext()
>>    };
>>    installer.Context.Parameters.Add("assemblypath",
>> this.GetType().Assembly.Location);
>>    installer.Install(new Hashtable());
>>    using (var system = Registry.LocalMachine.OpenSubKey("System"))
>>    using (var currentControlSet = system.OpenSubKey("CurrentControlSet"))
>>    using (var services = currentControlSet.OpenSubKey("Services"))
>>    using (var service = services.OpenSubKey(installer.ServiceName, true))
>>    {
>>        var path = (string)service.GetValue("ImagePath");
>>
>>        options.Action = Action.Server;
>>
>>        service.SetValue("ImagePath", path + options);
>>    }
>> }
>>
>> Notice the addition of the "assemblypath" context and then changing
>> the Action to Server. I can now install and uninstall but the service
>> won't start - I'm getting the following message in the event viewer:
>>
>> "Service cannot be started. The service process could not connect to
>> the service controller"
>>
>> Any thoughts?
>>
>> Thanks,
>> Matt
>>
>>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Rhino Tools Dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rhino-tools-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Attachment: InstallAction.patch
Description: Binary data

Reply via email to