저는 signalR과 Owin이 (가) 새롭으며 도움이 필요합니다.Windows 서비스의 자체 호스트로 SignalR 호스팅
[내 허브는 자체 호스팅됩니다] 라이브러리에 내 signalR 코드를 모두 썼습니다. 그런 다음 Windows 서비스 응용 프로그램에서 lib를 참조하고 Windows 서비스 응용 프로그램에 "Microsoft.Owin.Host.HttpListener"패키지를 설치하고 실행하려고했습니다. 그 유선 예외를 얻고있다 :
순서 내가의 WinForm 응용 프로그램에서 내 라이브러리를 테스트하고 제대로 작동
일치하는 요소를 포함하지 않는다.
나는 왜 내가 그것을 얻고 있는지 전혀 모른다.
업데이트 : 코드 예제 : 내 라이브러리 "MYLIB"에서
개인으로 IDisposable 호스트;
private bool Start()
{
try
{
string url = "http://localhost:5000/";
host = SelfHost.Host(url);
}
catch (Exception ex)
{
log.WriteLine("************HOSTING FAILED ********************************* ex.ToString():"+ ex.ToString()+
" Ex.StackTrace: "+ex.StackTrace +" EX.Message: " + ex.Message + "***************");
}
}
private bool Stop()
{
if (host != null)
{
host.Dispose();
}
}
내 SelfHost 클래스 :
myLib l = new myLib();
내가합니다 (ONSTART를 구현) 창문 :
class SelfHost
{
public static IDisposable Host(string url)
{
return WebApplication.Start<SelfHost>(url);
}
public void Configuration(IAppBuilder app)
{
// Turn cross domain on
var config = new HubConfiguration { EnableCrossDomain = true };
// This will map out to http://localhost:8080/signalr by default
app.MapHubs(config);
}
}
내 창문이 lib 디렉토리에서 서비스 응용 프로그램을 객체를 만든 후 myLib에서 Start() - 함수를 호출하는 스레드를 시작하는 서비스 :
protected override void OnStart(string[] args)
{
Thread t = new Thread(new ThreadStart(this.StartServiceThread));
t.CurrentCulture = new System.Globalization.CultureInfo("en-US");
t.Start();
}
private void StartServiceThread()
{
l.Start();
}
출력 [전 정보]
************HOSTING FAILED *********************************
ex.ToString():
System.InvalidOperationException: Sequence contains no matching element
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source, Func`2 predicate)
at Microsoft.Owin.Hosting.ServerFactory.DefaultServerFactoryLoader.Load(String serverName)
at Microsoft.Owin.Hosting.KatanaEngine.ResolveServerFactory(StartContext context)
at Microsoft.Owin.Hosting.KatanaEngine.Start(StartContext context)
at Microsoft.Owin.Hosting.Starter.DirectHostingStarter.Start(StartOptions options)
at Microsoft.Owin.Hosting.KatanaStarter.Start(StartOptions options)
at Microsoft.Owin.Hosting.WebApplication.Start[TStartup](IServiceProvider services, StartOptions options)
at Microsoft.Owin.Hosting.WebApplication.Start[TStartup](StartOptions options)
at Microsoft.Owin.Hosting.WebApplication.Start[TStartup](String url)
at SelfHost.Host(String url) in SelfHost.cs:line 29
at myLib.Start() in myLib.cs:line 381
Ex.StackTrace:
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source, Func`2 predicate)
at Microsoft.Owin.Hosting.ServerFactory.DefaultServerFactoryLoader.Load(String serverName)
at Microsoft.Owin.Hosting.KatanaEngine.ResolveServerFactory(StartContext context)
at Microsoft.Owin.Hosting.KatanaEngine.Start(StartContext context)
at Microsoft.Owin.Hosting.Starter.DirectHostingStarter.Start(StartOptions options)
at Microsoft.Owin.Hosting.KatanaStarter.Start(StartOptions options)
at Microsoft.Owin.Hosting.WebApplication.Start[TStartup](IServiceProvider services, StartOptions options)
at Microsoft.Owin.Hosting.WebApplication.Start[TStartup](StartOptions options)
at Microsoft.Owin.Hosting.WebApplication.Start[TStartup](String url)
at SelfHost.Host(String url) in SelfHost.cs:line 29
at myLib.Start() in myLib.cs:line 381
EX.Message: Sequence contains no matching element***************
사전에
감사합니다!
예제 코드 – ccellar
을 표시하고 stacktrace (.ToString())를 포함한 예외에 대한 자세한 정보를 제공해주십시오. –
나는 그것을했다, 내 업데이 트를 참조하십시오 –