【问题标题】:ASP.NET Core 2.0 Web API - can't publish on IISASP.NET Core 2.0 Web API - 无法在 IIS 上发布
【发布时间】:2018-10-26 19:29:36
【问题描述】:

我有一个 ASP.NET Core 2.0 WebAPI,现在我想将它部署到 IIS 服务器。

在调试模式下,我可以通过邮递员发出请求,我得到了正确的结果。

但是当我将 web api 部署到 iis-server 时,我无法调用 web 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);
        }
    }
}

程序.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();
    }
}

我还在 IIS 服务器上安装了 Microsoft .NET Core Windows Server Hosting Bundle 文件

这是我的部署步骤:

  1. 我已将我的项目发布到一个文件夹,然后将其复制到目标文件夹上的 Web 服务器。
  2. 我创建了一个具有无托管代码设置的应用程序池。
  3. 然后我创建了一个新的应用程序并选择了上面的应用程序池并将物理路径设置为 web api 文件夹。

当我尝试通过邮递员发出请求时,我没有得到任何结果。

谁能帮忙?

【问题讨论】:

    标签: iis asp.net-core asp.net-core-2.0 asp.net-core-webapi


    【解决方案1】:

    我已经解决了这个问题:

    1. 我忘记打开防火墙上的特定端口
    2. 我在服务器上遇到了问题,因为我配置的应用程序池没有与数据库通信的正确权限

    【讨论】:

      猜你喜欢
      • 2018-08-14
      • 2018-02-28
      • 2021-04-27
      • 2019-12-28
      • 2018-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多