5

我将我的 .Net 核心项目部署到 window server 2012 R2 64bit 并且发生了这种情况:

在此处输入图像描述 HTTP 错误 502.5 - 根据 Microsoft 指南处理失败,他们说这是因为平台与 RID 冲突。

https://docs.microsoft.com/en-us/aspnet/core/publishing/iis?tabs=aspnetcore2x#common-errors

我已经完成了该指南中的每一步,但无法修复它。所以有人知道如何解决这个问题吗?如果可以的话,我将不胜感激。谢谢你。

注意:我已经给了发布文件夹完全权限,还安装了 ASPNetCoreModule v2.0,net core sdk 2.0。我的 IIS 版本是 8.5。

这是我的 .csproj:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <RootNamespace>_MyAppAPI</RootNamespace>
    <AssemblyName>_MyAppAPI</AssemblyName>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <DocumentationFile></DocumentationFile>
  </PropertyGroup>

  <ItemGroup>
    <Content Remove="wwwroot\swagger\authen\basic-auth.js" />
    <Content Remove="wwwroot\swagger\ui\custome.css" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="Middleware\" />
    <Folder Include="Logs\" />
    <Folder Include="Models\appapi\" />
    <Folder Include="wwwroot\lib\" />
    <Folder Include="wwwroot\logs\" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.0" />
    <PackageReference Include="Serilog.Extensions.Logging.File" Version="1.1.0" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="1.0.0" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Include="wwwroot\swagger\authen\basic-auth.js" />
    <EmbeddedResource Include="wwwroot\swagger\ui\custome.css" />
  </ItemGroup>

</Project>

以及构建后的 web.config:

<?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=".\_MyAppAPI.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>
<!--ProjectGuid: 2510f4bb-368b-4ab2-96e1-5d06b14d677e-->

我遇到了这个问题:IIS 无法运行 ASP.NET Core 站点 - HTTP 错误 502.5 似乎正是我的问题。但我在任何地方都找不到 .exe 文件。:(

4

4 回答 4

2

有些人可能会从我已经完成的步骤中获得帮助。

确保(在 Windows 服务器中托管 .net 核心应用程序时):

  1. 启用 IIS
  2. 安装 .net core SDK - 对应的包(2.0/2.1/etc)
  3. 安装 .net core runtime - 对应的包(2.0/2.1/etc)
  4. 安装 .net core windows server hosting - 对应包(2.0/2.1/etc)
  5. 安装与visual studio版本对应的c++可再发行文件
  6. 在inetpub/wwwroot/下创建文件夹
  7. 将您发布的文件粘贴到该文件夹​​中
  8. 在 IIS 的默认网站下添加应用程序并提供别名和物理路径。

而已。您可以使用项目的服务器 ip/别名 http://192.168.100.10/samplesite浏览您的应用程序

于 2018-12-18T12:00:42.680 回答
1

有同样的问题,首先启用登录 web.config 更改为:

stdoutLogEnabled="true" 

并确保您已在已发布应用程序的根文件夹中创建“日志”文件夹。重新启动 IIS 站点(您的网站)并检查日志,它们会告诉您出了什么问题。

于 2018-07-09T11:42:58.817 回答
0

只是要仔细检查一下,您是否设置了默认文档?

此外,在 IIS 中,如果您正在运行 .net 2.0 项目,您可能必须将此部署的应用程序池管道从集成切换到经典,并将 .NET CLR 版本切换到 2.0。

取决于您使用的 .net 版本。

于 2017-10-13T08:28:45.513 回答
0

你好!Windows 上 .NET Core 的先决条件:

对于 Windows 8.1 及更早版本,或 Windows Server 2012 R2 及更早版本:

确保您的 Windows 安装是最新的并且包括 KB2999226,它可以通过 Windows 更新安装。如果您没有安装此更新,则在启动 .NET Core 应用程序时会看到如下错误:The program can't start because api-ms-win-crt-runtime-l1-1-0您的计算机中缺少 .dll。尝试重新安装程序以解决此问题。

查看更多: https ://docs.microsoft.com/pt-br/dotnet/core/windows-prerequisites?tabs=netcore30

于 2019-11-01T20:58:54.710 回答