2017-02-01 6 views
2

VS2015を管理者権限で使用すると、ホストが起動し、Nancyfxを使用してリクエストを受信できます。Owin Self Hostが起動しない

IDisposable host = null; 
    IDisposable HostStart() 
    { 
     try 
     { 
      return WebApp.Start<Startup1>("http://*:7002"); 
     } 
     catch (HttpListenerException ex) 
     { 

      throw new Exception(ex.Message); 
     } 
    } 

私は例外を得ることはありませんが、サーバーがfound.IがファイアウォールをオフにしていることはできませんVisual Studioの拡張とセットアッププロジェクトを作成し、構築し、インストールしてから、管理者privalagesを実行します。私は今、アイデアがなくなったのですか?

UPDATE:私は例外

An exception has been thrown by the taget of invocation. 


    System.Reflection.TargetInvocationException: Exception has been thrown by   the target of an invocation. ---> System.Exception: Object reference not set to an instance of an object. 
    at CabbyTechOffice.Startup1.Configuration(IAppBuilder app) 
    --- End of inner exception stack trace --- 
    at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 
    at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr,  Binder binder, Object[] parameters, CultureInfo culture) 
    at Owin.Loader.DefaultLoader.<>c__DisplayClass12. <MakeDelegate>b__b(IAppBuilder builder) 
    at Owin.Loader.DefaultLoader.<>c__DisplayClass1. <LoadImplementation>b__0(IAppBuilder builder) 
at Microsoft.Owin.Hosting.Engine.HostingEngine.ResolveApp(StartContext context) 
at Microsoft.Owin.Hosting.Engine.HostingEngine.Start(StartContext context) 
at Microsoft.Owin.Hosting.Starter.DirectHostingStarter.Start(StartOptions options) 
at Microsoft.Owin.Hosting.Starter.HostingStarter.Start(StartOptions options) 
at Microsoft.Owin.Hosting.WebApp.StartImplementation(IServiceProvider services, StartOptions options) 
at Microsoft.Owin.Hosting.WebApp.Start(StartOptions options) 
at Microsoft.Owin.Hosting.WebApp.Start[TStartup](StartOptions options) 
at Microsoft.Owin.Hosting.WebApp.Start[TStartup](String url) 
at CabbyTechOffice.MAIN.HostStart() 

を取得していますヌルrefが起動しているようだ:

 public class MyBoot : DefaultNancyBootstrapper 
    { 
     protected override void ConfigureApplicationContainer(TinyIoCContainer container) 
     { 
      CabbyTechOfficeConfig fig = ConfigUI.GetCabbyTechConfig(); 
      if (fig == null) 
      { 
       throw new Exception("NO CONFIG"); 
      } 
      ICabbytechOfficeDataAccess DB = null; 
      try 
      { 
       DB = ConnDBCreater.CreateDB(fig.DatabaseComputerName + "\\" + fig.DatabaseInstanceName, "taxidb", fig.DbPassword, 8); 
       IPEndPoint smsEP = null; 
       SmsCommsMob sms = null; 
       var comms = new ControlConnectAndSend(new IPEndPoint(IPAddress.Any, fig.DispatchFromPDAServerPort)); 
       try 
       { 
        smsEP = new IPEndPoint(IPAddress.Parse(fig.SmsIp), fig.SmsPort); 
        sms = new SmsCommsMob(smsEP); 
       } 
       catch (Exception) 
       { 
       } 
       StateInjector stateInjector = new StateInjector(DB, comms, sms); 
       UdpBroadcasterJson.Send(new UDPCmd() { code = UDPCmd.commandsEnum.broadcastForDispatch }, stateInjector.UDPDispatchPort); 

       try 
       { 
        var comp = DB.CompaniesGet(); 
        stateInjector.CompanyName = comp.company; 
       } 
       catch (Exception) 
       { 
       } 

       try 
       { 
        stateInjector.zones = DB.ZonesGet(); 
       } 
       catch (Exception) 
       { 
       } 
       try 
       { 
        var locLog = new PdaLocLog(); 
        var locLogger = new PdaLocLogger(DB, locLog); 
        stateInjector.locLogger = locLogger; 
       } 
       catch (Exception) 
       { 
       } 
       container.Register<IStateInjector, StateInjector>(stateInjector); 
      } 
      catch (Exception ex) 
      { 
       throw new Exception(ex.Message); 
      } 



     } 
    } 


} 
+1

ポートが使用されていないかどうかを確認します。 'C:\> netstat -bano | findstr "7002" ' – vendettamit

+0

私はそのポートでサービスを感謝しなかったことを確認しました。私は例外が発生したために質問を更新する必要がありますが、私は実現しませんでした。 –

+0

内部例外を取得できますか? –

答えて

1

に試すのチェーンを持っているが/空のcatchブロックでキャッチします。

  try 
      { 
       var comp = DB.CompaniesGet(); 
       stateInjector.CompanyName = comp.company; 
      } 
      catch (Exception) 
      { 
      } 

      try 
      { 
       stateInjector.zones = DB.ZonesGet(); 
      } 
      catch (Exception) 
      { 
      } 
      try 
      { 
       var locLog = new PdaLocLog(); 
       var locLogger = new PdaLocLogger(DB, locLog); 
       stateInjector.locLogger = locLogger; 
      } 
      catch (Exception) 
      { 
      } 

これは、あなたが次に使用しようとするstateInjectorを残す可能性があります。

キャッチを処理して、試行/キャッチの問題を記録できるようにする必要があります。おそらく、それが失敗している環境には問題がありますが、空のキャッチが原因でそのことを知ることはできません。

+1

あなたは正しいです。どうもありがとうございました。 –

0

NancyFxブートストラップのTinyIocコンテナには、例外ハンドラの設計上の問題があり、依存関係にnullが注入されていました。

関連する問題