ASP.NET核心RESTfull API托管 - 500内部服务器错误
问题描述:
According to this topic我试图发布和托管我的.NET核心应用程序。当我尝试从我的API(example.com/pets/users
)使用GET请求检索数据时,我收到500内部服务器错误。 example.com/pets
是我的API发布的URL。ASP.NET核心RESTfull API托管 - 500内部服务器错误
我的webconfig看起来是这样的:
<?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=".\Pets.Api.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</configuration>
我相信这是非常好的。
标准输出日志中这样说:
警告: Microsoft.Extensions.DependencyInjection.DataProtectionServices [59]
无论用户个人资料,也可HKLM注册表。使用临时密钥库。当 应用程序退出时,受保护的数据将不可用。
警告: Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository [50]
使用一个内存库。密钥不会被持久存储。
托管环境:生产
内容根路径:d:\ HostingSpaces \ xardaslord \ example.com \ wwwroot的\宠物
应用开始。按下Ctrl + C关闭。
究竟是什么错误?我检查了我的远程数据库连接,它是正确的。
我真的很感激,如果有人可以帮助我在这里。
答
我解决了这个问题。问题是我在服务器上新创建的虚拟目录上发布了该API。当我在子域上发布API时,一切正常。
答
上述的解决方法警告错误:编辑您的IIS应用程序池以启用用户配置文件加载。应用程序池>高级设置>加载用户配置文件:真
没有很多在这里继续下去。根据我的经验,当您从本地运行到开发模式以托管于生产模式时,可能会出现配置项丢失的问题。你在本地使用用户机密吗?如果你这样做,你将不会有他们在生产。这只是一个例子... – GlennSills
我改变了应用程序池,以无托管代码,现在当我尝试做GET请求'example.com /宠物/ users'我得到403 - 禁止访问:访问被拒绝。 – XardasLord
与应用程序池关联的应用程序标识是什么?它是否具有读取部署文件夹的权限? – GlennSills