I have manually changed the target framework of my Web API from .NET 8 to .NET 4.6.1 for compatibility reasons. My question now is how I should change my Program.cs file and other config files for the program to run.
Currently I have altered the Program.cs file and added a Startup.cs file, such that both of these look like this:
Program.cs:
<code>using System;
using Microsoft.Owin.Hosting;
namespace MobileAppApi
{
public class Program
{
public static void Main(string[] args)
{
string baseAddress = "http://localhost:9000/";
using (WebApp.Start<Startup>(url: baseAddress))
{
Console.WriteLine("Web API running at " + baseAddress);
Console.WriteLine("Press [Enter] to quit.");
Console.ReadLine();
}
}
}
}
</code>
<code>using System;
using Microsoft.Owin.Hosting;
namespace MobileAppApi
{
public class Program
{
public static void Main(string[] args)
{
string baseAddress = "http://localhost:9000/";
using (WebApp.Start<Startup>(url: baseAddress))
{
Console.WriteLine("Web API running at " + baseAddress);
Console.WriteLine("Press [Enter] to quit.");
Console.ReadLine();
}
}
}
}
</code>
using System;
using Microsoft.Owin.Hosting;
namespace MobileAppApi
{
public class Program
{
public static void Main(string[] args)
{
string baseAddress = "http://localhost:9000/";
using (WebApp.Start<Startup>(url: baseAddress))
{
Console.WriteLine("Web API running at " + baseAddress);
Console.WriteLine("Press [Enter] to quit.");
Console.ReadLine();
}
}
}
}
Startup.cs:
<code>
using System.Web.Http;
using Microsoft.Owin;
using Owin;
using Unity;
using Unity.Lifetime;
using MobileAppApi.Api.Controllers;
using MobileAppApi.Api.Services;
using MobileAppApi.Api.Interfaces;
[assembly: OwinStartup(typeof(MobileAppApi.Startup))]
namespace MobileAppApi
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
ConfigureWebApi(config);
ConfigureDependencyInjection(config);
app.UseWebApi(config);
}
private void ConfigureWebApi(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
}
private void ConfigureDependencyInjection(HttpConfiguration config)
{
var container = new UnityContainer();
container.RegisterType<IArticleService, ArticleService>(new HierarchicalLifetimeManager());
container.RegisterType<ArticlesController>(new HierarchicalLifetimeManager());
config.DependencyResolver = new UnityResolver(container);
}
}
}
</code>
<code>
using System.Web.Http;
using Microsoft.Owin;
using Owin;
using Unity;
using Unity.Lifetime;
using MobileAppApi.Api.Controllers;
using MobileAppApi.Api.Services;
using MobileAppApi.Api.Interfaces;
[assembly: OwinStartup(typeof(MobileAppApi.Startup))]
namespace MobileAppApi
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
ConfigureWebApi(config);
ConfigureDependencyInjection(config);
app.UseWebApi(config);
}
private void ConfigureWebApi(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
}
private void ConfigureDependencyInjection(HttpConfiguration config)
{
var container = new UnityContainer();
container.RegisterType<IArticleService, ArticleService>(new HierarchicalLifetimeManager());
container.RegisterType<ArticlesController>(new HierarchicalLifetimeManager());
config.DependencyResolver = new UnityResolver(container);
}
}
}
</code>
using System.Web.Http;
using Microsoft.Owin;
using Owin;
using Unity;
using Unity.Lifetime;
using MobileAppApi.Api.Controllers;
using MobileAppApi.Api.Services;
using MobileAppApi.Api.Interfaces;
[assembly: OwinStartup(typeof(MobileAppApi.Startup))]
namespace MobileAppApi
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
ConfigureWebApi(config);
ConfigureDependencyInjection(config);
app.UseWebApi(config);
}
private void ConfigureWebApi(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
}
private void ConfigureDependencyInjection(HttpConfiguration config)
{
var container = new UnityContainer();
container.RegisterType<IArticleService, ArticleService>(new HierarchicalLifetimeManager());
container.RegisterType<ArticlesController>(new HierarchicalLifetimeManager());
config.DependencyResolver = new UnityResolver(container);
}
}
}
While the program does “run” and I can see the console.logs in the terminal, I cannot debug the api:s, so clearly my api is not running. All other errors have been fixed so far.