2017-09-13 136 views
0

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的\宠物

现在监听:http://localhost:13556

应用开始。按下Ctrl + C关闭。

究竟是什么错误?我检查了我的远程数据库连接,它是正确的。

我真的很感激,如果有人可以帮助我在这里。

+1

没有很多在这里继续下去。根据我的经验,当您从本地运行到开发模式以托管于生产模式时,可能会出现配置项丢失的问题。你在本地使用用户机密吗?如果你这样做,你将不会有他们在生产。这只是一个例子... – GlennSills

+0

我改变了应用程序池,以无托管代码,现在当我尝试做GET请求'example.com /宠物/ users'我得到403 - 禁止访问:访问被拒绝。 – XardasLord

+0

与应用程序池关联的应用程序标识是什么?它是否具有读取部署文件夹的权限? – GlennSills

回答

0

我解决了这个问题。问题是我在服务器上新创建的虚拟目录上发布了该API。当我在子域上发布API时,一切正常。

2

上述的解决方法警告错误:编辑您的IIS应用程序池以启用用户配置文件加载。应用程序池>高级设置>加载用户配置文件:真