2017-09-13 5 views
0

According to this topic J'essaie de publier et d'héberger mon application .NET Core. Je reçois 500 Erreur interne du serveur lorsque j'essaie de récupérer des données à l'aide de la requête GET de mon API (example.com/pets/users). example.com/pets est une URL où mon API est publiée.Hébergement de l'API ASP.NET Core RESTfull - Erreur interne du serveur 500

Mon webconfig ressemble à ceci:

<?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> 

que je crois est assez correct.

journal stdout dit ceci:

mettent en garde: Microsoft.Extensions.DependencyInjection.DataProtectionServices [59]

Ni profil utilisateur ni registre HKLM disponible. Utiliser un référentiel de clés éphémères. Les données protégées ne seront pas disponibles lorsque l'application sera fermée.

prévenons: Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository [50]

L'utilisation d'un référentiel en mémoire. Les clés ne seront pas conservées dans le stockage.

environnement Hébergement: Production

chemin racine Contenu: D: \ HostingSpaces \ xardaslord \ example.com \ wwwroot \ animaux

Maintenant écoute sur: http://localhost:13556

application a commencé. Appuyez sur Ctrl + C pour arrêter.

Qu'est-ce qui ne va pas? J'ai tapé ma connexion DB à distance et c'est correct.

J'apprécierais vraiment si quelqu'un pourrait m'aider ici.

+1

Il n'y a pas grand chose à faire ici. D'après mon expérience, lorsque vous passez de l'exécution locale au mode développement pour être hébergé en mode production, des éléments de configuration peuvent manquer. Utilisez-vous des secrets d'utilisateur localement? Si vous le faites, vous ne les aurez pas en production. C'est juste un exemple ... – GlennSills

+0

J'ai changé App Pool en No Managed Code, et maintenant quand j'essaye de faire la requête GET 'example.com/pets/users' je reçois 403 - Interdit: L'accès est refusé. – XardasLord

+0

Quelle est l'identité de l'application associée au pool d'applications et est-il autorisé à lire le dossier de déploiement? – GlennSills

Répondre

0

J'ai résolu le problème. Le problème était que j'avais publié cette API sur le nouveau répertoire virtuel créé sur le serveur. Lorsque j'ai publié l'API sur le sous-domaine, tout fonctionne correctement.

2

Solution de contournement pour les erreurs ci-dessus warn errors: modifiez votre pool d'applications IIS pour activer le chargement du profil utilisateur. App Pool> Paramètres avancés> Charger le profil utilisateur: Vrai