0

我在 Windows 上创建了一个 ASP.NET web api,它以 XML 形式返回一些测试数据。我已经安装了 Nuget 包 Microsoft ASP.NET Web Api Self Host,并且在 web api 中我配置了一个端口为 1234 的 Selfhost。我使用了以下文档:

https://docs.microsoft.com/de-de/aspnet/web-api/overview/older-versions/self-host-a-web-api

我以管理员身份运行 Visual Studio,还运行了 web api。在浏览器中,我输入了localhost:1234/api/product/1。有用。

我正在尝试在 Linux 上运行它。整个解决方案被复制到 Linux 并使用 MonoDevelop 执行。启动 web api 并在浏览器中输入localhost:1234/api/product/1时,没有返回任何数据。它无限加载。

这是控制器的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebServiceTest.Models;

namespace WebServiceTest.Controllers
{
    public class ProductsController : ApiController
    {
        Product[] products = new Product[]
        {
            new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 },
            new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M },
            new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M }
        };

        [Route("api/product/getall")]
        [HttpGet]
        public IEnumerable<Product> GetAllProducts()
        {
            return products;
        }

        [Route("api/product/{id}")]
        [HttpGet]
        public IHttpActionResult Get(int id)
        {
            var product = products.FirstOrDefault((p) => p.Id == id);
            if (product == null)
            {
                return NotFound();
            }
            return Ok(product);
        }
    }
}

下面是 WebApiConfig 类的代码:

using System;
using System.Web.Http;
using System.Web.Http.SelfHost;

namespace WebServiceTest
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web-API-Konfiguration und -Dienste
            var selfHostConfig = new HttpSelfHostConfiguration("http://localhost:1234");

            // Web-API-Routen
            selfHostConfig.MapHttpAttributeRoutes();

            using (HttpSelfHostServer server = new HttpSelfHostServer(selfHostConfig))
            {
                server.OpenAsync().Wait();
                Console.WriteLine("Press Enter to quit.");
                Console.ReadLine();
            }
        }
    }
}

我如何设法在 Linux 上运行 web api?

4

0 回答 0