.net Core API无法在IIS上运行

时间:2018-05-25 11:57:55

标签: api .net-core iis-7.5

我是这个.NET Core的新手,这是我第一次尝试部署其中一个。

该项目是Angular前端构建的API,它接收HTTP请求并返回JSON。当我在我的盒子上的Visual Studio中运行它时,一切都很好。我正在运行VS2017并安装了.NET Core 2.0.0。

我发布到Web服务器上的一个文件夹,它似乎工作正常,但当我尝试访问API时,我得到404未找到错误。服务器正在运行.NET 2.0.6(我试图获得2.0.0,但无法在Hosting Bundle安装程序中找到它。

如果我删除web.config,HTML文件就会显示出来,但显然API不起作用。但是,当HTML文件显示时,权限和访问权限没有问题。事件查看器中没有任何内容。我也尝试打开web.config中的日志记录,但它没有记录...可能没有达到足够的目标。

Web配置看起来像这样。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\RawMaterialsSystem.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>
<!--ProjectGuid: f01b1621-2ced-4ad2-9ae6-004e03b0e043-->`

1 个答案:

答案 0 :(得分:2)

步骤1:将您的web.config文件更改为此

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <!--
    Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
  -->
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>


步骤2:

  • 在Visual Studio中,右键单击.net核心应用程序项目,然后选择“发布”
  • 然后将其发布为bin \ Release \ netcoreapp2.0 \ publish下的文件夹



步骤3:

  • 在IIS中->站点->右键单击 YourSite ->在“管理网站”下,选择“高级设置”
  • 确保您指向的“物理路径”是作为应用程序目录的“发布”文件夹,而不是“ netcoreapp2.0”文件夹