ASP.NET Core 2.0 Web API - не может публиковать в IIS - PullRequest
0 голосов
/ 16 мая 2018

У меня есть ASP.NET Core 2.0 WebAPI, и теперь я хочу развернуть его на IIS-сервере.

В режиме отладки я могу отправлять запросы через почтальона и получаю правильные результаты.

Но когда я развертываю веб-API на iis-сервере, я не могу вызвать сервисы веб-API. Так что это какой-то не работает правильно.

Я следовал нескольким инструкциям, как это сделать, вот одно из руководств: https://www.codeproject.com/Articles/1216729/Get-NET-Core-Web-API-Hosted-in-IIS

Это все еще не работает.

ProductController.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CodeBaseFx;
using FurnitureContract.Services;
using FurnitureContract.Services.Model;
using FurnitureContract.Services.Service;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace FurnitureContract.WebApi.Controllers
{
    [Produces("application/json")]
    [Route("api/Product")]
    public class ProductController : Controller
    {
        private IProductService service = ServiceFacade.ProductService;

        public ProductController(IProductService service)
        {
            this.service = service;
        }

        [HttpGet("GetById")]
        public IEnumerable<Product> GetByProductId(string productId)
        {
            return service.GetByProductId(productId);
        }

        [HttpGet("GetByDesc")]
        public IEnumerable<Product> GetByProductDesc(string productDesc, string language)
        {
            var lng = CoreFacade.Language.GetLanguage(language);
            return service.GetByProductDesc(productDesc, lng);
            //return service.GetByProductDesc(productDesc, LanguageType.it);
        }
    }
}

Program.cs

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;

namespace FurnitureContract.WebApi
{
    public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();
    }
}

Я также установил файл пакета размещения хостинга Microsoft .NET Core Windows Server на IIS Server

Вот мои шаги развертывания:

  1. Я опубликовал свой проект в папке, а затем скопировал его на веб-сервер в целевой папке.
  2. Я создал пул приложений с параметром без управляемого кода .
  3. Затем я создал новое приложение, выбрал пул приложений выше и установил физический путь к папке web api.

Когда я пытаюсь сделать запрос через почтальона, я не получаю никакого результата.

Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 17 мая 2018

Я решил проблему:

  1. Я забыл открыть определенные порты на брандмауэре
  2. У меня была проблема на сервере, потому что пул приложений, который я настроил, не имел права доступа к базе данных
...