我可以从Visual C#项目中的WPF应用程序部署Web服务api吗?

时间:2019-06-22 14:34:07

标签: asp.net wpf rest api web

我对ASP.NET还是很陌生,并且在这个问题上停留了很长时间。 我有一个目前可以使用的WPF应用程序(.NET Framework)。这是一个用于控制某些外部设备(机器人)的程序。我在Visual Studio 2017中将WPF应用程序的C#项目作为可编辑项目。

我想做的是使用该程序(WPF App)来部署Web API服务,并通过Web API在WPF App中使用功能,例如,我有命令localhost:XXXX/api/moveforward使按钮中的机器人向前移动在WPF应用中,我想提供一个调用A.FORWARD的Web API服务来调用该命令(Application_Start())。

首先,我尝试使用.NET Framework 4.6.1创建Web API服务,并将用于控制机器人的代码和依赖项从WPF App复制到其中。但是在部署了Web API之后,我发现Web API无法访问外部设备(机器人)。

然后,我尝试将所有用于部署API服务的代码复制到WPF应用程序。但是我发现API服务无法运行(Global.asax.cs中的Global.asax.cs),并且我不能强迫它运行。

要强制WPF应用运行API,我复制了所有需要的文件,尤其是public void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } 来运行包含此文件的API

MainWindow.xaml.cs

...,然后单击public void ButtonEmotion_Click(object sender, RoutedEventArgs e) { new Global().Application_Start(); } 中的某个按钮将其添加到通话中。

{{1}}

这些努力说:

  

抛出异常:“ System.InvalidOperationException”   System.Web.dll类型的未处理异常   System.Web.dll中出现“ System.InvalidOperationException”
  在应用程序的预启动过程中无法调用该方法   初始化阶段。

0 个答案:

没有答案