using Microsoft.AspNet.SignalR; using Owin; using Microsoft.Owin.Cors; using Microsoft.Owin.Hosting; using System; using System.Reflection; using Learun.Util; namespace Learun.Application.IMServer { public class Startup { /// /// 开启服务 /// public static void Start() { string SignalRURI = Config.GetValue("IMUrl"); try { try { using (WebApp.Start(SignalRURI, builder => { builder.Map("/signalr", map => { // Setup the cors middleware to run before SignalR. // By default this will allow all origins. You can // configure the set of origins and/or http verbs by // providing a cors options with a different policy. map.UseCors(CorsOptions.AllowAll); var hubConfiguration = new HubConfiguration { // You can enable JSONP by uncommenting line below. // JSONP requests are insecure but some older browsers (and some // versions of IE) require JSONP to work cross domain EnableJSONP = true }; // Run the SignalR pipeline. We're not using MapSignalR // since this branch is already runs under the "/signalr" // path. map.RunSignalR(hubConfiguration); }); builder.MapSignalR(); })) { Console.WriteLine("服务开启成功,运行在{0}", SignalRURI); Console.ReadLine(); } } catch (TargetInvocationException exception) { Console.WriteLine("服务开启失败. 已经有一个服务运行在{0}. 异常信息:{1}", SignalRURI, exception.ToString()); Console.ReadLine(); } } catch (Exception ex) { Console.WriteLine("服务开启异常:{0}", ex.ToString()); Console.ReadLine(); } } } }