HTTP错误502.5从IIS运行ASP.NET Core 2.0应用程序

时间:2018-03-09 16:23:00

标签: iis asp.net-core windows-server-2012-r2

尝试从IIS运行我的ASP.NET核心2.0 Web应用程序时出现HTTP 502.5错误。

我已经安装了.NET Core Windows Server Hosting Bundle并根据此文档检查了我的所有IIS设置https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/index?tabs=aspnetcore2x

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=".\OscarWeb.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

Windows事件日志会产生以下错误。

enter image description here

在Windows Server 2012 R2上运行IIS v6.2。 Web应用程序是使用ASP.NET Core 2.0构建的。

当我从命令行运行dotnet时,没有错误:

dotnet oscarweb.dll

3 个答案:

答案 0 :(得分:2)

在这种情况下,您要做的第一件事是创建CREATE OR REPLACE TRIGGER T12 AFTER INSERT OR UPDATE OR DELETE ON EMP FOR EACH ROW DECLARE OP VARCHAR2(20);NEW NUMBER(5);BEGIN IF INSERTING THEN OP: = 'INSERT';ELSIF UPDATING THEN OP: = 'UPDATE';ELSE OP: = 'DELETE';END IF; INSERT INTO EMP_AUDIT VALUES( :NEW.EMPNO, :NEW.ENAME, :NEW.SAL, :OLD.EMPNO, :OLD.ENAME, :OLD.SAL );END; 文件夹(如果缺少)并检查生成的stdout日志。

它可以是几个不同的东西,但从个人经验来看,我遇到的最常见问题是IIS没有足够的权限来运行它。在IIS中,您可以配置高级设置中使用的标识。如果它正在使用ApplicationPoolIdentity,则将其更改为LocalSystem并查看它是否有效。然而,stdtout文件中的日志会给你答案。

答案 1 :(得分:1)

此问题的解决方案(至少在我的情况下)是重启Web服务器。安装.NET Core Windows Server Hosting Bundle后,您需要重新启动服务器才能正确注册。

感谢Chris Pratt(我的问题下面的第一条评论)建议答案:)

答案 2 :(得分:0)

不确定您的webconfig是否完整。我相信aspnetcore标签也需要设置ASPNETCORE_ENVIRONMENT环境变量。

<?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=".\OscarWeb.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" >
        <environmentVariables>
            <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="YourRuntimeEnv" />
        </environmentVariables>
    </aspNetCore>
  </system.webServer>
</configuration>