Что такое правильный способ использовать Ninject с WebServiceHost (при размещении в IIS)Что такое правильный способ использовать Ninject с WebServiceHost
Пожалуйста, обратите внимание, что у меня нет НИКАКОГО SVC-файла и не хочу. Поэтому у меня есть неограниченный URL. Я использую Ninject для ввода репо и т. Д. В службу. В то время как это работает Я не могу вспомнить, как я это делал раньше, и то, как я это делаю сейчас, неверно - его фактически работает как самостоятельная организация - мне нужна услуга для участия в конвейере IIS (используйте тот же порт, запуск/завершение работы с AppPool) ...
Я добавил ссылку на Ninject.Extensions.WCF, которая создала NinectWebCommon.cs в моей папке App_Start. В том, что я разводке услуги следующим образом (но я не хочу, чтобы указать URL/порт, и я хочу, чтобы участвовать в собственном жизненном цикле)
private static void RegisterServices(IKernel kernel)
{
var port = 8080;
var uri = new Uri(String.Format("http://{0}:{1}/api", Environment.MachineName, port));
var baseAddr = new Uri[] { uri };
var binding = new WebHttpBinding(WebHttpSecurityMode.None);
var endPoint = new ServiceEndpoint(ContractDescription.GetContract(typeof(MyServiceClassHere))
, binding, new EndpointAddress(uri));
kernel.Bind<IProjectRepository>().To<MyRepo>();
kernel.Bind<WebServiceHost>().To<NinjectWebServiceHost>()
.WithConstructorArgument("serviceType", typeof(MyServiceClassHere))
.WithConstructorArgument("baseAddresses", baseAddr);
var webBehavior = new WebHttpBehavior() { HelpEnabled = true };
endPoint.Behaviors.Add(webBehavior);
_host = kernel.Get<WebServiceHost>();
_host.AddServiceEndpoint(endPoint);
_host.Open();
}
Может ли вы помочь мне с лучшей практикой подключение службы с помощью Ninject.
Заранее спасибо.