Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Web配置在发布HTTP错误500.19后引发错误_C#_Iis_Asp.net Core_Asp.net Core 2.1 - Fatal编程技术网

C# Web配置在发布HTTP错误500.19后引发错误

C# Web配置在发布HTTP错误500.19后引发错误,c#,iis,asp.net-core,asp.net-core-2.1,C#,Iis,Asp.net Core,Asp.net Core 2.1,我使用ASP.NET Core 2.1开发了一个项目,遇到了一个问题,web.config在另一台机器上发布时复制了system.webServer Web.Config <?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer>

我使用ASP.NET Core 2.1开发了一个项目,遇到了一个问题,
web.config
在另一台机器上发布时复制了
system.webServer

Web.Config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath=".\Project.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
    </system.webServer>
  </location>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath=".\Project.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

配置错误

已定义配置节“system.webServer/aspNetCore”。每个配置文件只能显示一次节。有关例外情况,请参阅帮助主题

发布个人资料

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <ProjectGuid>GUID</ProjectGuid>
    <SelfContained>true</SelfContained>
    <_IsPortable>false</_IsPortable>
    <MSDeployServiceURL>RemoteMachine</MSDeployServiceURL>
    <DeployIisAppPath>Project</DeployIisAppPath>
    <RemoteSitePhysicalPath />
    <SkipExtraFilesOnServer>False</SkipExtraFilesOnServer>
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
    <EnableMSDeployBackup>True</EnableMSDeployBackup>
    <UserName />
    <_SavePWD>False</_SavePWD>
  </PropertyGroup>
</Project>

MSDeploy
释放
任何CPU
真的
假的
netcoreapp2.1
win-x64
指南
真的
假的
遥控器
项目
假的
WMSVC
真的
假的

如果我直接从VisualStudio发布,它工作正常,
web.config
不会更改,但我使用TeamCity来构建和发布项目。显然,删除额外的
system.webServer
会修复它,但我确信这是一个根本原因。我是不是错过了什么

作为服务器的Iis及其运行的应用程序(站点)可以各自具有自己的配置,并且它们在从根(计算机级别)到tip(站点/for/虚拟应用程序)的层次结构中加载。如果在机器配置中定义了一个部分,则该部分对所有站点都是通用的。如果站点也定义了它,则可能会出现配置错误。根据其他站点是否需要,从任意配置中删除该节。有一种方法可以让iis列出它为特定站点加载的所有web配置,但我忘了如何显示it@prd是的,我知道这将修复它,如前所述,但这意味着每次我从TeamCity发布时,我都必须删除该元素。我想弄清楚它为什么要复制它,这样我就可以解决问题,而不必手动删除它。您可以在部署期间忽略
web.config
文件,以避免issue@Saif我该怎么做呢?城市队一定是从什么地方得到了它的配置-那它在哪里?。也许它会进行web配置转换,您可以使用此机制从发布配置中删除该节,但保留其他节,并可能保留该节用于调试配置