将.net核心项目部署到Windows Server 2012 r2

时间:2017-10-13 04:42:20

标签: c# .net-core iis-8.5 window-server

我将.Net核心项目部署到窗口服务器2012 R2 64bit,这发生了:

enter image description here 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 fails to run ASP.NET Core site - HTTP Error 502.5 似乎是我的问题。但我无法在任何地方找到.exe文件。 :(

4 个答案:

答案 0 :(得分:1)

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

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

  1. 启用IIS
  2. 安装.net core SDK-相应的程序包(2.0 / 2.1 / etc)
  3. 安装.net core运行时-相应的软件包(2.0 / 2.1 / etc)
  4. 安装.net核心Windows服务器托管-相应的程序包(2.0 / 2.1 / etc)
  5. 安装与Visual Studio版本相对应的c ++可再发行文件
  6. 在inetpub / wwwroot /
  7. 下创建文件夹
  8. 将发布的文件粘贴到该文件夹​​中
  9. 在IIS的默认网站下添加应用程序,并提供别名和物理路径。

就这样。您可以使用项目的服务器IP /别名来浏览您的应用程序 http://192.168.100.10/samplesite

答案 1 :(得分:0)

遇到相同的问题,首先在web.config中启用登录更改为:

stdoutLogEnabled="true" 

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

答案 2 :(得分:0)

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

对于Windows 8.1和更低版本,或Windows Server 2012 R2和更低版本:

确保您的Windows安装是最新的,并且包括KB2999226,可以通过Windows Update安装。如果未安装此更新,则在启动.NET Core应用程序时会看到类似以下的错误:该程序无法启动,因为api-ms-win-crt-runtime-l1-1-0您的计算机中缺少.dll。尝试重新安装程序以解决此问题。

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

答案 3 :(得分:-1)

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

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

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