尝试从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事件日志会产生以下错误。
在Windows Server 2012 R2上运行IIS v6.2。 Web应用程序是使用ASP.NET Core 2.0构建的。
当我从命令行运行dotnet时,没有错误:
dotnet oscarweb.dll
答案 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>