WindowsサービスでホストされているNinject WCFのRESTサービスでは、私はシンプルなWCF RESTサービスを作成し
class NinjectBindings: NinjectModule
{
public override void Load()
{
Bind<IReadData>().To<ReadData>();
Bind<IFacadeToRepo>().To<RepositoryApi>();
}
}
そして、最後に私はServiceBaseを作成しました:
public partial class MyRestWCFRestWinSer : ServiceBase
{
ServiceHost readDataServiceHost = null;
private StandardKernel kernel;
public MyRestWCFRestWinSer()
{
kernel = new StandardKernel();
kernel.Load(Assembly.GetExecutingAssembly());
InitializeComponent();
}
public void OnDebug()
{
OnStart(null);
}
protected override void OnStart(string[] args)
{
readDataServiceHost = new ServiceHost(kernel.Get<IReadData>());
readDataServiceHost.Open();
}
protected override void OnStop()
{
if (readDataServiceHost != null)
{
readDataServiceHost.Close();
readDataServiceHost = null;
}
}
}
私は今、IRinDataを解決し、新しいReadDataウィジェットのデフォルトIFacadeToRepoを作成する必要があると考えました。しかし、それは動作しません。 installutil経由でWindowsサービスをインストールし、procesを実行した後 - >「サービスが開始されました。サービスを開始できませんでした。サービスはエラーを報告しませんでした」
これらのWebサービスをninjectsと一緒に実行してもらえますか?
編集。後
kernel.Get<IReadData>()
にそれを置き換える: - それは私が作った
作品READDATAに
typeof演算(READDATA)
および追加デフォルトでは、空のコンストラクタそれは排他的な問題を抱えているようです見えますいくつかのテストは行の後に行を追加します。
私は、TopShelfでWindowsサービスを使用してホストできるIISでホストしていないソリューションを探してきました。これが私の問題を解決しました。私は一回以上upvoteできますか? – JohnChris