web.config中未更改asp.net core 2.2 AspNetCoreModuleName

时间:2019-02-28 14:55:34

标签: .net iis .net-core

我的.csproj文件中具有这样的属性组

  <PropertyGroup>
      <TargetFramework>netcoreapp2.2</TargetFramework>
      <AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
      <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
  </PropertyGroup>

,但是当使用dotnet发布到服务器时,在服务器中发布/ p:PublishProfile = ITProfile我的web.config看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
  <configuration>
    <location path="." inheritInChildApplications="false">
      <system.webServer>
         <handlers>
            <add name="aspNetCore" path="*" verb="*" 
                 modules="AspNetCoreModuleV2" resourceType="Unspecified" />
         </handlers>
         <aspNetCore processPath="dotnet" 
                     arguments=".\Turvasuunnitelma.Backend.dll" 
                     stdoutLogEnabled="false" 
                     stdoutLogFile=".\logs\stdout" 
                     hostingModel="InProcess">
         <environmentVariables>
              <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="IT" />
         </environmentVariables>
  </aspNetCore>
</system.webServer>

已发布的hostingModel设置为“ InProcess”,这是怎么回事?生成时,它将值从何处获取到web.config?

并且我不使用InProcess,因为它给我HTTP错误500.0-ANCM进程内处理程序加载失败。不知道这是旧的IIS还是发生了什么,是否安装了最新的托管模块等,是否按预期在IIS中的模块中安装了AspNetCoreModuleV2。

1 个答案:

答案 0 :(得分:0)

  

而且我不使用InProcess,因为它给了我HTTP错误500.0-   ANCM进程内处理程序加载失败。不知道这是旧的IIS还是   这是怎么回事,安装了最新的托管模块等,   IIS中的模块中的AspNetCoreModuleV2如预期的那样。当您使用   流程,您需要使用独立的AppDomain。

在您的IIS中,只需使用无托管代码选项创建一个新的Appdomain

将您的应用放入新的应用域中。

这解决了这个问题。

IIS上的.net核心进程内托管文档声明,它要求一个独立的应用程序域