私はコンソールプロジェクトから始める作業Web APIサービスを持っています。 これをサービスとして実行したいと考えています。このコードでinstallutil.exe使用してサービスとしてインストールOwinセルフホストasp.net Web apiがサービスとして起動したときに接続を拒否します
イム:
[RunInstaller(true)]
public class ApplicationInstaller:Installer
{
private ServiceProcessInstaller processInstaller;
private ServiceInstaller serviceInstaller;
public ApplicationInstaller()
{
serviceInstaller = new ServiceInstaller();
processInstaller = new ServiceProcessInstaller();
processInstaller.Account = ServiceAccount.LocalSystem;
serviceInstaller.StartType = ServiceStartMode.Automatic;
serviceInstaller.ServiceName = "WTT Rumsa";
serviceInstaller.Description = "Web API for WTT Rumsa";
Installers.Add(serviceInstaller);
Installers.Add(processInstaller);
}
}
これは私がサービスを開始するために使用するものである:
public static void StartService()
{
var startOptions = new StartOptions();
var internalURL = $"http://{Environment.MachineName}:6666";
startOptions.Urls.Add(internalURL);
_logger.Debug($"Service started at: {internalURL}");
startOptions.Urls.Add("http://localhost:6666");
foreach(var address in Dns.GetHostEntry(Dns.GetHostName()).AddressList)
{
if(address.AddressFamily==AddressFamily.InterNetwork)
{
var ipURL = $"http://{address.ToString()}:6666";
_logger.Debug($"Service started at: {ipURL}");
startOptions.Urls.Add(ipURL);
}
}
using(WebApp.Start<SelfHostConfiguration>(startOptions))
{
Console.WriteLine($"Service started and listening at {internalURL}");
Console.ReadLine();
}
}
私はサービス私のロガー・ショーを開始するとStartService()を通って実行されていることを確認します。 私は私のクライアントで私が呼んでいるIPを追加したのを見ることができます。 サービスを開始してもサービスは停止しません。 アカウントの種類がServiceAccount.LocalSystemあるので
をし、それが実際にスロースタート(としない「対象のコンピュータによって拒否されたため、接続していません」:私はこのメッセージを取得する接続するときしかし
例外)、権限は大丈夫です。 私は使用しているポートのローカルファイアウォールに例外を追加しました。
他に何が間違っていますか?
編集: コンソールとサービスとして実行されているwebserviceがコマンドウィンドウに表示され、サービスとして実行されている場合はリストに表示されず、コンソールアプリケーションとして実行されます。ファイアウォール設定の問題?