ASP.NET Core 的Windows和IIS宿主(自动翻译记录)

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

支持的操作系统

以下操作系统的支持:

  • Windows 7和更新
  • Windows Server 2008 R2和新†

†概念,本文档中描述的IIS配置也适用于托管ASP.NET核心应用纳米服务器IIS,而是指ASP.NET在IIS服务器上的纳米核心为特定的指令

HTTP.SYS服务器(原名weblistener)与IIS赢得一个反向代理配置不工作。你必须使用该服务器

IIS配置

使Web服务器(IIS)建立角色和角色服务

Windows桌面操作系统

引导到控制面板>程序>程序和功能>打开或关闭Windows特性(屏幕左侧)。打开组互联网信息服务和网站管理工具。检查箱IIS管理控制台。检查箱万维网服务。接受默认的特征万维网服务或自定义IIS功能以满足您的需要。

IIS Management Console and World Wide Web Services are selected in Windows Features.

Windows服务器操作系统

服务器操作系统,使用添加角色和功能向导通过管理菜单或链接服务器管理器。上服务器角色步,检查箱Web服务器(IIS)

The Web Server IIS role is selected in the Select server roles step.

上角色服务步,选择IIS角色服务你的欲望或接受服务提供的默认角色。

The default role services are selected in the Select role services step.

通过进行确认步安装Web服务器角色和服务。服务器IIS重启不安装Web服务器(IIS)作用后需要。

安装.NET核心Windows服务器托管束

    1. 安装NET的核心Windows服务器托管束。在主机系统。捆绑安装.NET核心运行时,.NET核心库,和ASP.NET的核心模块。该模块创建IIS和红隼服务器之间的反向代理。如果系统没有连接互联网,获取和安装微软Visual C++ 2015可再发行在安装.NET核心Windows服务器托管束。

    2. 重新启动系统或执行网站是/ Y然后启动W3SVC从命令提示符拿起改变系统路径。

笔记

如果你使用IIS共享配置,看随着ASP.NET核心模块共享配置IIS

安装Web部署Visual Studio发布时

如果你打算部署你的应用程序部署工具进入visual studio最新版本,安装Web部署的托管系统。安装Web部署,您可以使用Web平台安装程序(webpi)或获得一个安装程序,直接从微软下载中心。首选的方法是使用WebPI。webpi提供一个托管服务提供商独立的安装和配置。

应用程序配置

使iisintegration组件

一个典型的cs电话createdefaultbuilder开始建立一个主机CreateDefaultBuilder配置红隼作为Web服务器,使IIS集成的基本路径和端口配置ASP.NET的核心模块

C #
public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        ...

在主机的更多信息,参见在ASP.NET核心举办

IIS选项

配置iisintegration服务选项,包括服务的配置iisoptions进入configureservices

C #
services.Configure<IISOptions>(options => 
{
    ...
});
选项默认设置
AutomaticAuthentication true 如果true,认证中间件集HttpContext。用户并对仿制药的挑战。如果false,认证中间件提供了一个身份(HttpContext。用户)和响应的挑战时,明确要求的AuthenticationScheme。Windows身份验证必须启用IISautomaticauthentication功能
AuthenticationDisplayName null 设置显示给用户的登录页面的显示名称。
ForwardClientCertificate true 如果trueaspnetcore - clientcert女士请求头是目前的HttpContext.Connection.ClientCertificate填充

web.config

这个web.config配置文件是ASP.NET的核心模块。它可以提供额外的IIS配置设置。创造、转化、出版web.config是由核心网(Web SDK。Microsoft.NET.Sdk.Web)。SDK将在项目文件的顶部(。csproj),<Project Sdk="Microsoft.NET.Sdk.Web">。为了防止SDK转化web.config文件,添加<IsTransformWebConfigDisabled>属性和设置项目文件true

XML
<PropertyGroup>
  <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
</PropertyGroup>

如果你没有一个web.config文件在项目发布时用DotNet发布或Visual Studio发布的文件是为你出版输出。如果你有一个web.config在你的项目文件,它与正确的转化路径争论配置ASP.NET的核心模块搬到出版输出。变换不碰IIS配置设置,你已经包含在文件。

创建IIS网站

    1. 在目标IIS系统,创建一个文件夹包含应用程序发布的文件夹和文件,它描述了目录结构

    2. 在你创建的文件夹中,创建一个日志把stdout文件夹日志(如果你打算启用日志记录来解决启动问题)。如果你打算部署一个应用程序日志在有效载荷的文件夹,你可以跳过这一步。有一个开放的问题自动创建文件夹。如果你想创建的MSBuild日志文件夹为你添加以下Target到你的项目文件:

      XML
      <Target Name="CreateLogsFolder" AfterTargets="AfterPublish">
        <MakeDir Directories="$(PublishDir)logs" Condition="!Exists('$(PublishDir)logs')" />
        <MakeDir Directories="$(PublishUrl)logs" Condition="!Exists('$(PublishUrl)logs')" />
      </Target>
      
    3. 进入管理器创建一个新的网站。提供一个网站名称并设置物理路径对应用程序的部署文件夹中创建。提供封面配置和创建网站

    4. 设置应用程序池没有托管代码。ASP.NET的核心运行在一个单独的流程和管理运行。

    5. 打开添加网站窗口

      Click Add Website from the Sites contextual menu.

    6. 配置网站

      Supply the Site name, physical path, and Host name in the Add Website step.

    7. 在应用程序池面板,打开编辑应用程序池用鼠标右键点击网站的应用程序池和选择窗口基本设置…从popup菜单

      Select Basic Settings from the contextual menu of the Application Pool.

    8. 设置NET CLR版本到没有托管代码

      Set No Managed Code for the .NET CLR Version.

      注意:设置NET CLR版本到没有托管代码是可选的。ASP.NET的核心并不依赖于加载桌面CLR。

    9. 确认过程模型具有适当权限的身份。

      如果您更改应用程序池默认身份(过程模型&#62;身份从)applicationpoolidentity另一个身份,确认新的身份具有所需的权限来访问应用程序的文件夹,数据库,和其他所需资源。

部署应用程序

部署到你创建的目标上的IIS系统文件夹中的应用。部署工具是用于部署的推荐机制。Web部署方案如下。

确认发布APP的部署没有运行。文件在发布文件夹被锁定时,应用程序运行。部署不能因为锁定的文件不能被复制。

Web部署Visual Studio

看到创建发布配置文件的Visual Studio和MSBuild,部署ASP.NET核心应用程序课题学习如何创建一个发布配置为使用Web部署。如果你的主机提供商提供一个发布配置文件或创建一个支持,下载他们的个人资料,使用Visual Studio导入发布对话框

Publish dialog page

Web部署Visual Studio外

你也可以使用部署工具从命令行Visual Studio外。有关更多信息,参见Web部署工具

Web部署方案

如果你不想使用Web部署或不使用Visual Studio中,你可以用几种方法来移动应用的托管系统,如Xcopy,robocopy,或PowerShell。Visual Studio用户可以使用发布样品

浏览网站

The Microsoft Edge browser has loaded the IIS startup page.

警告

NET的核心应用程序托管通过IIS和红隼服务器之间的反向代理。为了创建反向代理,这web.config文件必须在内容根路径(通常是应用程序库路径)的部署的应用程序,这是提供给IIS网站的物理路径。敏感的文件存在于应用程序的物理路径,包括子文件夹,如my_application.runtimeconfig.jsonmy_application.xml(XML文档comments),andmy_application.deps.json。这个web.config文件需要创建反向代理红隼,它阻止IIS服务这些和其他敏感文件。Therefore, it&#39;s important that theweb.config文件不小心删除重命名或从部署。

数据保护

ASP.NET的核心应用程序商店的钥匙圈内存在下列条件下:

  • 一个网站托管在IIS。
  • 数据保护堆栈没有被配置为存储在持久性存储的钥匙圈。

如果密钥存储在内存中的应用程序重新启动时:

  • 所有形式的身份验证令牌无效。
  • 用户需要登录他们的下一个请求。
  • 你的任何数据保护密钥环不再保护。

警告

数据保护是由几个ASP.NET中间件的应用,包括那些用于认证。即使你不打电话给数据保护API从您自己的代码,你应该部署脚本或代码中的配置数据保护。如果你不配置数据保护,默认情况下,密钥保存在内存中,当你的应用程序启动的丢弃。重启无效的Cookie认证中间件和用户编写的饼干必须重新登录。

配置数据保护下IIS,你必须使用下列方法之一:

  • 运行PowerShell脚本创造合适的注册表项(例如,.Provision-AutoGenKeys.ps1 DefaultAppPool)。本店键在注册表中,使用DPAPI与机宽重点保护。
  • 配置IIS应用程序池加载用户配置文件。此设置在过程模型节下的高级设置为应用程序池。配置加载用户配置文件到True。This stores keys under the user profile directory and protects them using DPAPI with a key specific to the user account used for the app pool.
  • 调整你的应用程序代码使用文件系统的一个关键环店。使用X509证书来保护密钥环,确保它是一个受信任的证书。如果它是一个自签名的证书,你必须把它放在受信任的根存储。

当使用IIS在Web场:

1。创建一个数据保护注册表配置单元

ASP.NET的应用程序所使用的数据的保护密钥存储在注册表配置单元的应用程序的外部。坚持的钥匙,对于一个给定的应用程序,您必须创建一个应用程序的应用程序池注册表配置单元。

对于独立的IIS安装,你可以使用数据保护provision-autogenkeys.ps1 PowerShell脚本与ASP.NET的核心应用程序使用的每个应用程序池。这个脚本创建在HKLM注册表,AC LED只有工作进程帐户的特殊注册表项。关键是使用DPAPI加密在休息。

在Web场的情况下,一个应用程序可以配置为使用UNC路径来存储其数据保护的钥匙圈。默认情况下,数据保护密钥不加密。你应该确保该共享文件的权限仅限于Windows帐户运行的应用程序。此外,你可以选择保护钥匙在休息使用X509证书。你可能希望考虑一个机制允许用户上传证书证书:地方到用户的受信任的证书存储和确保他们可以在所有的机器在运行用户的应用程序。看到配置数据保护详情

2。配置IIS应用程序池加载用户配置文件

此设置在过程模型节下的高级设置为应用程序池。设置加载用户配置文件True。This stores keys under the user profile directory and protects them using DPAPI with a key specific to the user account used for the app pool.

三.数据保护机宽政策

数据保护系统的默认设置有限的支持机宽政策所有的应用程序,使用数据保护API。看到数据保护更详细的文档

子应用程序配置

子应用添加应用程序的根不在包括ASP.NET核心模块作为一个处理程序。如果你添加的模块作为子应用程序的处理程序web.config文件,你收到一个500.19(内部服务器错误)引用错误的配置文件,当你试图浏览子应用程序。下面的示例演示了一个发表的内容web.config为ASP.NET核心子应用程序文件:

XML
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <aspNetCore processPath="dotnet" 
      arguments=".MyApp.dll" 
      stdoutLogEnabled="false" 
      stdoutLogFile=".logsstdout" />
  </system.webServer>
</configuration>

如果你打算举办一个non-asp.net核心子应用程序在ASP.NET的核心应用程序,您必须显式删除的子应用程序继承的处理web.config文件:

XML
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <remove name="aspNetCore"/>
    </handlers>
    <aspNetCore processPath="dotnet" 
      arguments=".MyApp.dll" 
      stdoutLogEnabled="false" 
      stdoutLogFile=".logsstdout" />
  </system.webServer>
</configuration>

在配置ASP.NET核心模块的更多信息web.config文件,看ASP.NET的核心模块介绍话题和ASP.NET的核心模块配置参考

在web.config配置IIS

IIS的配置仍然是受<system.webServer>web.config对于那些IIS功能,适用于反向代理配置。例如,你可能有IIS在系统级配置为使用动态压缩,但你可以禁用,与一个应用程序设置<urlCompression>在应用程序的元素web.config文件更多信息,见配置参考<system.webServer>ASP.NET的核心模块配置参考使用IIS模块与ASP.NET核心。如果你需要单独的应用程序运行在独立的应用程序池设置环境变量(支持IIS 10),看appcmd.exe命令部分的Environment Variables <environmentVariables>在IIS的参考文档主题。

Web.config配置部分of

与.NETFramework应用程序配置的<system.web><appSettings><connectionStrings>,和<location>元素web.config,ASP.NET的核心应用程序配置使用其他配置提供者。有关更多信息,参见配置

应用程序池

当承载多个网站在一个单一的系统,你应该将应用程序互相在自己的应用程序池运行每个应用程序。IIS添加网站对话框的默认行为。当你提供一个网站名称,文字会自动转移到应用程序池文本框。一个新的应用程序池是用网站的名称,当你添加的网站创建。

应用程序池标识

一个应用程序池标识帐户允许你运行一个应用程序的一个独特的帐户下无需创建和管理域或本地帐户。在IIS 8,IIS辅助进程(是)创建一个新的应用程序池名称的虚拟账户并运行应用程序池中的工作进程在该账户默认情况下。在IIS管理控制台下高级设置为你的应用程序池,确保身份设置使用applicationpoolidentity如下图所示

Application pool advanced settings dialog

IIS管理过程创造了一个安全标识符和应用程序池的名称在Windows安全系统。资源可以利用这个身份担保;然而,这个身份并不是一个真正的用户帐户并不会显示在Windows用户管理控制台。

如果你需要给IIS辅助进程的高架访问您的应用程序,您必须修改访问控制列表(ACL)包含您的应用程序的目录。

  1. 打开Windows资源管理器,浏览目录。

  2. 右键单击目录性能

  3. 下安防选项卡,单击编辑按钮,然后添加按钮

  4. 点击位置按钮,让你选择你的系统。

  5. 进入1 apppool defaultapppool进入输入对象名称来选择文本框

    Select users or groups dialog for the application folder

  6. 点击检查名称按钮,然后单击好啊

    Select users or groups dialog for the application folder

你也可以通过命令提示符下使用ICACLS工具

控制台
ICACLS C:sitesMyWebApp /grant "IIS AppPoolDefaultAppPool":F

故障排除技巧

诊断与IIS部署问题:

  • 研究浏览器输出
  • 检查系统应用日志事件查看器
  • 使stdout登录中.这个ASP.NET的核心模块日志提供的路径找到stdoutlogfile属性的<aspNetCore>元素web.config。在属性值提供的路径文件夹必须在部署存在。您还必须设置stdoutLogEnabled="true"。。。。。。。这是使用的应用程序。Microsoft.NET.Sdk.WebSDK创建web.config默认的文件stdoutlogenabled设置,所以你必须手动提供web.config文件或修改文件以使stdout登录中.

几种常见的错误不在浏览器中,出现应用程序日志,日志和ASP.NET的核心模块到模块startuptimelimit(默认120秒),startupretrycount(默认值:2)已通过。因此,等待一个完整的前六分钟推断模块未能启动应用程序的过程。

快速确定应用程序是否正常工作的方法之一是对红隼直接运行应用程序。如果应用程序被公布为框架依赖部署(FDD),执行dotnet my_application.dll部署文件夹中,它是IIS的物理路径的应用。如果应用程序已作为一个独立的部署(SCD),运行应用程序的可执行文件直接从命令提示符,我_ application.exe,部署文件夹中。如果红隼是监听默认的5000端口,你可以浏览应用程序http://localhost:5000/。如果应用程序的响应通常在红隼的端点地址,问题是更可能的iis-asp.net核心模块红隼配置相关的和不太可能在应用程序本身。

要确定如果IIS反向代理服务器的红隼正常工作的一种方法是执行一个简单的静态样式表,脚本文件的请求,或图像从应用程序的静态文件网站根目录使用静态文件中间件。如果应用程序可以提供静态文件但MVC视图和其他端点是失败的,问题是不可能的iis-asp.net核心模块的相关配置和红隼在应用程序本身更可能(例如MVC路由或500内部服务器错误)。

当该启动正常但后面IIS应用程序不能运行在系统上本地运行的成功后,你可以暂时添加一个环境变量web.config设置ASPNETCORE_ENVIRONMENT发展。只要你不在应用程序启动覆盖环境,这使得网页开发者例外出现时,该应用程序在系统中运行。设置环境变量ASPNETCORE_ENVIRONMENT在这种方式只推荐分期/测试系统,不接触互联网。确保你从删除环境变量web.config文件完成时。在设置环境变量的信息web.config对于反向代理,看环境变量子元素aspnetcore

在大多数情况下,应用测井协助解决应用程序或反向代理的问题。看到登录中更多信息

我们最后的故障排除技巧属于应用程序无法运行升级无论是在.NET核心SDK的开发机或包的版本在应用程序。在某些情况下,非相干的包可能会打破一个应用程序进行重大升级时。你可以解决大多数这些问题通过删除binobj在项目文件夹,清理包缓存%UserProfile%.nugetpackageslocalappdata % % nuget V3的 缓存,恢复项目,并确认您的系统之前部署已完全删除重新部署应用程序之前。

小贴士

一个方便的方式来清除包缓存是获得nuget.exe工具nuget.org,把它添加到你的系统路径,并执行nuget locals all -clear从命令提示符。你也可以执行dotnet NuGet当地人都清晰从命令提示符命令没有获得nuget.exe

常见的错误

以下不完整的列表错误。如果你遇到一个错误不在此列,请留下详细的错误信息,在下面的评论部分。

安装程序无法获得VC Redistributable

  • 安装程序:0x80072efd或0x80072f76 -未指定的错误

  • 安装日志exception†:错误0x80072efd或0x80072f76:未能执行EXE包

    †日志位于C:用户用户 AppData { }地方温度 dd_dotnetcorewinsvrhosting__ { }日志的时间戳。

故障排除:

  • 如果系统不能访问Internet的主机捆绑在安装服务器,这发生异常时,安装程序无法获得微软Visual C++ 2015可再发行。你可以从中获得一个安装程序微软下载中心。如果安装失败,您可能没有收到。NET的核心运行时需要主机框架依赖部署(FDD)。如果你打算举办一个FDD,确认运行安装程序及特点。你可以从获得的运行安装程序网络下载。安装运行后,重新启动系统或通过执行重启IIS网站是/ Y然后启动W3SVC从命令提示符

操作系统的升级将32位ASP.NET核心模块

  • 应用程序日志:该DLL模块C: WindowsSystem32 inetsrv aspnetcore.dll无法加载。数据是错误。

故障排除:

  • 在非操作系统文件C: Windows Syswow64 inetsrv目录不在操作系统升级后保存。如果你有ASP.NET的核心模块在操作系统升级后再尝试运行在32位模式的任何apppool OS升级安装后,您遇到此问题。一个操作系统升级后,修复ASP.NET核心模块。看到安装.NET核心Windows服务器托管束。选择修复当您运行安装程序

平台以摆脱冲突

    • 浏览器502.5 HTTP错误处理功能

    • 应用程序日志:Application 'MACHINE/WEBROOT/APPHOST/MY_APPLICATION' with physical root 'C:{PATH}' failed to start process with commandline '"C:{PATH}my_application.{exe|dll}" ', ErrorCode = '0x80004005 : ff.

    • ASP.NET的核心模块日志:未处理的例外:system.badimageformatexception:未能加载文件或程序集“my_application DLL”。试图加载格式不正确的程序。

故障排除:

  • 确认应用程序运行在本地红隼。一个过程的故障可能会在应用程序是一个问题的结果。有关更多信息,参见故障排除技巧

  • 确认你没有设置<PlatformTarget>在你的。csproj以消除冲突。例如,不指定<PlatformTarget>属于x86出版与消除win10-x64,或者使用DotNet发布C释放R win10-x64或通过设置<RuntimeIdentifiers>在你的。csprojwin10-x64。该项目发布时没有警告或错误但不具有上述异常对系统登录。

  • 如果发生此异常的Azure应用程序的部署升级时应用和部署新的组件,从现有部署手动删除所有文件。挥之不去的不兼容的组件可能会导致System.BadImageFormatException例外部署升级应用程序时。

URI端点错误或停止网站

  • 浏览器_ _ refused连接错误

  • 应用程序日志:没有进入

  • ASP.NET的核心模块日志:日志文件不能创建

故障排除:

  • 确认你使用了正确的URI端点的应用。检查你的绑定。

  • 确认IIS网站不在停止状态

corewebengine或W3SVC服务器功能残疾

  • 异常的:IIS 7 corewebengine和W3SVC功能必须安装使用ASP.NET核心模块。

故障排除:

  • 确认您已启用适当的作用和特点。看到IIS配置

不正确的网站或应用物理路径缺失

  • 浏览器没有权限访问此网站-拒绝访问-或-403.14禁用Web服务器的配置不列出该目录的内容。

  • 应用程序日志:没有进入

  • ASP.NET的核心模块日志:日志文件不能创建

故障排除:

  • 检查IIS网站基本设置和物理应用程序文件夹。确认应用程序在文件夹在IIS网站物理路径

不正确的作用,模块没有安装,或不正确的权限

  • 浏览器500.19内部服务器错误请求的页不能因为该页的相关配置数据无效访问。

  • 应用程序日志:没有进入

  • ASP.NET的核心模块日志:日志文件不能创建

故障排除:

  • 确认您已经启用适当的角色。看到IIS配置

  • 检查程序&#38;功能特色并确认微软ASP.NET的核心模块已安装。if the微软ASP.NET的核心模块不在已安装的程序列表,安装模块。看到安装.NET核心Windows服务器托管束

  • 确保Application Pool&#62;过程模型&#62;身份是集applicationpoolidentity或自定义的身份来访问应用程序的部署文件夹的权限。

不正确的路径,缺少路径变量,主包没有安装,系统重新启动IIS不,VC Redistributable没有安装,或dotnet.exe访问冲突

  • 浏览器502.5 HTTP错误处理功能

  • 应用程序日志:Application 'MACHINE/WEBROOT/APPHOST/MY_APPLICATION' with physical root 'C:{PATH}' failed to start process with commandline '".my_application.exe" ', ErrorCode = '0x80070002 : 0.

  • ASP.NET的核心模块日志:日志文件创建但空

故障排除:

  • 确认应用程序运行在本地红隼。一个过程的故障可能会在应用程序是一个问题的结果。有关更多信息,参见故障排除技巧

  • 检查路径属性上<aspNetCore>元素web.config确认它的dotnet一个框架依赖部署(FDD)或我_ application.exe。一个独立的部署(SCD)。

  • 一个FDD,dotnet.exe不可通过的路径设置。确认C:程序文件 DOTNET *存在系统路径设置。

  • 一个FDD,dotnet.exe不可用于应用程序池的用户身份。确认用户身份访问的apppoolC:程序文件 dotnet目录确认没有否认配置为对用户身份的apppool规则C:程序文件 dotnet和应用程序目录

  • 你可能已经部署了FDD和安装.NET核心不重新启动IIS。重新启动服务器或通过执行重启IIS网站是/ Y然后启动W3SVC从命令提示符

  • 你可能已经部署了FDD不安装在主机系统的核心运行时网。如果你尝试部署FDD和没有安装.NET核心运行时,运行NET Windows核心服务器安装包在系统。看到安装.NET核心Windows服务器托管束。如果你试图安装.NET核心运行时对系统没有连接到互联网,从获得运行时网络下载运行主机安装包安装ASP.NET核心模块。通过重新启动系统或重新启动IIS执行完成安装网站是/ Y然后启动W3SVC从命令提示符

  • 你可能已经部署了FDD和安装.NET核心无需重新启动系统/ IIS。重新启动系统或通过执行重启IIS网站是/ Y然后启动W3SVC从命令提示符

  • 你可能已经部署了FDD和微软的Visual C 2015 Redistributable(x64)系统中未安装。你可以从中获得一个安装程序微软下载中心

Incorrect arguments of <aspNetCore> element

  • 浏览器502.5 HTTP错误处理功能

  • 应用程序日志:Application 'MACHINE/WEBROOT/APPHOST/MY_APPLICATION' with physical root 'C:{PATH}' failed to start process with commandline '"dotnet" .my_application.dll', ErrorCode = '0x80004005 : 80008081.

  • ASP.NET的核心模块日志:执行应用程序不存在:“my_application DLL的路径。

故障排除:

  • 确认应用程序运行在本地红隼。一个过程的故障可能会在应用程序是一个问题的结果。有关更多信息,参见故障排除技巧

  • 检查争论属性上<aspNetCore>元素web.config确认它是(一个)我的_ application.dll。”一个框架依赖部署(FDD);或(b)不存在,空字符串(arguments=""),或一组应用程序的参数(arguments="arg1, arg2, ...")为独立部署(SCD)。

失踪的.NET Framework版本

  • 浏览器502.3错误网关-有一个连接错误而试图请求路由。

  • 应用程序日志:ErrorCode = Application 'MACHINE/WEBROOT/APPHOST/MY_APPLICATION' with physical root 'C:{PATH}' failed to start process with commandline '"dotnet" .my_application.dll', ErrorCode = '0x80004005 : 80008081.

  • ASP.NET的核心模块日志:缺少方法,文件,或装配的例外。的方法,文件,或装配中的异常指定一个.NET框架的方法,文件,或装配。

故障排除:

  • 安装.NET Framework的版本被从系统。

  • 一个框架依赖部署(FDD),确认您已正确安装在系统的运行。如果你升级一个项目从1.1到2,部署到主机系统,和接受这一例外,确保你安装2框架对主机系统。

停止应用程序池

  • 浏览器503服务不可用

  • 应用程序日志:没有进入

  • ASP.NET的核心模块日志:日志文件不能创建

故障检修

  • 确认应用程序池不在停止状态

IIS集成中间件没有实现

  • 浏览器502.5 HTTP错误处理功能

  • 应用程序日志:Application 'MACHINE/WEBROOT/APPHOST/MY_APPLICATION' with physical root 'C:{PATH}' created process with commandline '"C:{PATH}my_application.{exe|dll}" ' but either crashed or did not reponse or did not listen on the given port '{PORT}', ErrorCode = '0x800705b4'

  • ASP.NET的核心模块日志:日志文件的创建和显示正常运行。

故障检修

  • 确认应用程序运行在本地红隼。一个过程的故障可能会在应用程序中是一个问题的结果。有关更多信息,参见故障排除技巧

  • 确认你已经正确地引用IIS集成中间件通过调用useiisintegration()。在应用程序的方法webhostbuilder()(ASP.NET核心1。x)或使用CreateDefaultBuilder方法(ASP.NET核心×)。See在ASP.NET核心举办详情

Sub-application includes a <handlers> section

  • 浏览器HTTP错误500.19 -内部服务器错误

  • 应用程序日志:没有进入

  • ASP.NET的核心模块日志:日志文件的创建和显示正常运行的应用程序的根。日志文件不为子应用。

故障检修

  • 确认子应用程序的web.config文件不包括<handlers>区域

应用程序配置的一般问题

  • 浏览器502.5 HTTP错误处理功能

  • 应用程序日志:Application 'MACHINE/WEBROOT/APPHOST/MY_APPLICATION' with physical root 'C:{PATH}' created process with commandline '"C:{PATH}my_application.{exe|dll}" ' but either crashed or did not reponse or did not listen on the given port '{PORT}', ErrorCode = '0x800705b4'

  • ASP.NET的核心模块日志:日志文件创建但空

故障检修

  • 这个一般的异常表示过程启动失败,最有可能是由于应用程序配置问题。指目录结构确认你的应用程序的部署,文件和文件夹是恰当的,你的应用程序的配置文件,包含你的应用程序和环境的正确设置。有关更多信息,参见故障排除技巧

资源

原文地址:https://www.cnblogs.com/xiaoruilin/p/7862228.html