我有一个非常好用的ASP WebAPI应用程序。 在不改变应用程序中任何大量内容的情况下,我正在尝试使用自托管组件创建一个新的控制台项目来托管应用程序(主要是在调试我的解决方案的其他组件时快速运行它而无需从Visual Studio打开和编译)。 / p>
我看到了很多使用 Microsoft.AspNet.SignalR.SelfHost 包的解决方案, 例如:Working With OWIN Hosting and Self Hosting in ASP.Net。
我看到的所有解决方案都使用以下结构:
string baseAddress = "http://localhost:9000/";
// Start OWIN host
using (WebApp.Start<Startup>(url: baseAddress))
{
// Create HttpCient and make a request to api/values
HttpClient client = new HttpClient();
var response = client.GetAsync(baseAddress + "api/values").Result;
Console.WriteLine(response);
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
}
Console.ReadLine();
这对我来说有点问题,因为using (WebApp.Start<Startup>(url: baseAddress))
在启动类中调用配置方法。
public class Startup
{
// This code configures Web API. The Startup class is specified as a type
// parameter in the WebApp.Start method.
public void Configuration(IAppBuilder appBuilder)
{ ... }
}
我的解决方案在 Application_Start()(在Global.aspx.cs文件中)内部有大量代码,我在启动控制台自托管应用程序时尝试访问这些代码。到目前为止没有任何成功。
这是一场失败的战斗,我应该尽可能多地从Application_Start方法移动到配置方法?或者,在运行Configuration方法之前,我是否以某种方式调用Application_Start?
我尝试创建ASP应用程序的实例并调用Application_Start,但这不起作用。
谢谢! 盖