.net Core API 无法在 IIS 上运行
.net Core API not working on IIS
我是 .NET Core 的新手,这是我第一次尝试部署其中一个。
该项目是一个 API,用于我正在构建的 Angular 前端,接受 HTTP 请求和 returns JSON。当我 运行 它在 Visual Studio 在我的盒子上时,一切都很好。我正在 运行ning VS2017 并安装了 .NET Core 2.0.0。
我发布到 Web 服务器上的一个文件夹,似乎一切正常,但是当我尝试访问 API 时,我收到 404 未找到错误。服务器是 运行ning .NET 2.0.6(我试图获取 2.0.0 但无法在托管捆绑安装程序中找到它。
如果我删除 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 步:将您的 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 core app项目然后select"Publish"
- 然后将其发布为bin\Release\netcoreapp2下的文件夹。0\publish
第 3 步:
- 在 IIS 中 --> 站点 --> 右击 YourSite --> 在 "Manage Website" select "Advanced Settings"
- 确保您指向的 "Physical Path" 是作为应用程序目录的 "publish" 文件夹,而不是 "netcoreapp2.0" 文件夹
我是 .NET Core 的新手,这是我第一次尝试部署其中一个。
该项目是一个 API,用于我正在构建的 Angular 前端,接受 HTTP 请求和 returns JSON。当我 运行 它在 Visual Studio 在我的盒子上时,一切都很好。我正在 运行ning VS2017 并安装了 .NET Core 2.0.0。
我发布到 Web 服务器上的一个文件夹,似乎一切正常,但是当我尝试访问 API 时,我收到 404 未找到错误。服务器是 运行ning .NET 2.0.6(我试图获取 2.0.0 但无法在托管捆绑安装程序中找到它。
如果我删除 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 步:将您的 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 core app项目然后select"Publish"
- 然后将其发布为bin\Release\netcoreapp2下的文件夹。0\publish
第 3 步:
- 在 IIS 中 --> 站点 --> 右击 YourSite --> 在 "Manage Website" select "Advanced Settings"
- 确保您指向的 "Physical Path" 是作为应用程序目录的 "publish" 文件夹,而不是 "netcoreapp2.0" 文件夹