在服务器上发布我的Core 2.2项目后,web.config无效

时间:2019-01-15 01:00:57

标签: c# asp.net-core asp.net-core-2.2

我在Asp.NET Core 2.2框架的顶部有一个使用C#编写的项目。

我能够将其发布到我的VPS。但是,当我尝试访问该网站时,出现以下错误

  

HTTP错误500.19-内部服务器错误

     

无法访问请求的页面,因为该页面的相关配置数据无效。

这是位于根目录中的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=".\ProjectName.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: 47b26df0-8a01-4d75-9549-3a98654550a3-->

web.config文件与我的其余文件一起通过Visual Studio发布。但是我在解决方案中看不到web.config文件。

此文件似乎无效。如何修复web.config文件?

如果我删除了web.config文件并添加了index.html页面,则该网站可以正常工作。在我看来,web.config出于某种原因该文件无效。

已更新 我可以使用命令行运行该应用程序。 使用命令行,我做了以下

  1. 我将目录更改为网站的根目录(即cd C:\inetpub\wwwroot\ProjectName
  2. 我执行以下命令dotnet ProjectName.dll
  3. 10秒后,我得到了应用程序正在运行的一些信息,它向我显示了该应用程序列出的URL。就我而言,它是http://localhost:5000
  4. O使用浏览器浏览器到http://localhost:5000,它工作正常。

但是当我使用域名访问它时,仍然出现如上所述的Http错误500.19。

1 个答案:

答案 0 :(得分:2)

如评论中所述

在iis中安装AspnetCore模块

在您的环境中将ASPNETCORE_ENVIRONMENT设置为生产环境或 在web.config中进行设置。

<aspNetCore processPath="dotnet"
      arguments=".\MyApp.dll"
      stdoutLogEnabled="false"
      stdoutLogFile="\\?\%home%\LogFiles\stdout"
      hostingModel="InProcess">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
  </environmentVariables>
</aspNetCore>