Pourquoi ma Galerie NuGet retour de 500 à partir de nuget pousser?
J'ai créé la nouvelle Galerie NuGet sur un serveur web sous IIS 7.0) où je travaille. Le site lui-même est mis en place et fonctionne très bien. Nous sommes en mesure d'enregistrer des comptes, de confirmer les adresses e-mail, et même télécharger un nouveau paquet par le biais du site lui-même.
Notre génération automatique de scripts doivent être en mesure de pousser nouvellement construit packages NuGet à la galerie. Lorsque j'utilise NuGet du poussoir de commande:
nuget.exe push build\nuget\BaconAndEggs.1.0.0.1.nupkg 1451002a-8c63-4174-b7ed-73dd3e7bcdf0 -Source http://somenearbyserver/
J'obtiens le résultat suivant:
Pushing BaconAndEggs 1.0.0.1 to 'http://somenearbyserver/'...
Failed to process request. 'Internal Server Error'.
The remote server returned an error: (500) Internal Server Error..
Le site est en mesure de télécharger un nouveau package, mais la ligne de commande n'est pas. Si j'essaie la commande push avec un violon en cours d'exécution, il observe deux requêtes consécutives lors de l'exécution de la commande push. L'un semble être en contact avec le site pour vous assurer qu'il est là, tandis que le second est le réel de la commande push.
Request 1: GET http://somenearbyserver/200 OK
Request 2: PUT http://somenearbyserver/api/v2/package/500 Internal Server Error
Le contenu de la requête PUT est correct, il contient la clé API et la charge utile. La recherche sur le serveur web, il n'y a pas d'erreurs dans l'observateur d'événements et elmah ne pas attraper quoi que ce soit.
Fiddler montre ce que la réponse à la METTRE:
HTTP/1.1 500 Internal Server Error
Content-Type: text/html
Server: Microsoft-IIS/7.0
X-Powered-By: ASP.NET
Date: Wed, 18 Jan 2012 20:21:08 GMT
Connection: close
Content-Length: 1208
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>500 - Internal server error.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;}
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;}
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
-->
</style>
</head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
<div class="content-container"><fieldset>
<h2>500 - Internal server error.</h2>
<h3>There is a problem with the resource you are looking for, and it cannot be displayed.</h3>
</fieldset></div>
</div>
</body>
</html>
Je suis en utilisant NuGet Version: 1.6.21205.9031
à partir de la ligne de commande.
Quel pourrait être le problème?
MODIFIER: Après l'activation de pages d'erreur détaillées sur le dossier de l'api dans le site, je l'obtenir avec la réponse de 500 décrits ci-dessus:
Erreur de serveur dans l'Application "NUGET" Internet Information Services 7.0 Erreur Résumé Erreur HTTP 500.0 - Erreur Interne du Serveur La page ne peut être affichée car une erreur interne du serveur s'est produite. Informations Détaillées Sur L'Erreur Module = LiveStreamingHandler Notification = MapRequestHandler Gestionnaire = WebDAV Code d'erreur = 0x80070585 Requested URL = http://somenearbyserver:80/api/v2/package/ Chemin D'Accès Physique = M:\path\to\nuget-gallery\api\v2\package\ Méthode D'Ouverture De Session = Anonyme Ouverture De Session De L'Utilisateur = Anonyme
Il y a aussi de l'aide des textes, des suggestions basées sur la vérification des autorisations et, mais aussi loin que je peux voir, il n'y a rien de mal avec les autorisations.
Vous devez vous connecter pour publier un commentaire.
J'ai résolu ce problème en modifiant les autorisations pour l'IIS de l'utilisateur. J'ai ajouté des autorisations d'écriture pour
IIS_IUSRS
.Cliquez-droit sur le site dans
IIS > edit permissions > security
À partir de là, vous ajoutez l'utilisateur ou du groupe et de leur donner les permissions d'écriture.
IIS_IUSRS
(avec un supplément dei
).IIS APPPOOL\MyAppPoolName
. Avis trois P dans une rangée. Remplacer par le nom de votre application de la piscine pour MyAppPoolName.Je suppose que vous faites allusion à la nouvelle galerie: https://github.com/NuGet/NuGetGallery
Pouvez-vous essayer de frapper /elmah.axd à partir d'un compte admin et voir si vous obtenez plus d'infos sur l'erreur?
Dans mon cas, c'était un ancien local du serveur nuget. Le message que j'ai trouvé dans les logs:
Dans mon cas, j'ai rétrogradé nuget (téléchargé une ancienne nuget.exe) et re-créé le package. Le push fonctionne maintenant. Je ne voulais pas perturber le processus d'ailleurs, et j'ai besoin d'une solution rapide, mais bien sûr cela dépend du scénario a. Dans le long terme, je mettrai à jour nuget.
Puisqu'il n'est pas mentionné, voici mon scénario:
J'ai été en mesure de pousser (et récupérer), la plupart des forfaits sans aucun problème. Mais, un paquet de gardé causer une erreur 404 quand j'ai essayé de le pousser à. Plusieurs sources en ligne ont indiqué que je devrais ajouter un type mime pour .nupkg, mais tous ce que c'est possible (quel que soit le type mime) a été à son tour l'erreur 500-erreur interne du serveur.
Il s'avère que le paquet en question était un peu plus grand que la normale, et IIS bouchons de la requête par défaut limite à 30 MO, origine du serveur nuget de retour cet obscur erreur. La modification du paramètre
system.webServer.security.requestFiltering.requestLimits.maxAllowedContentLength
à quelque chose de plus grand résolu pour moi (j'ai enlevé le type mime j'avais ajouté).Je vous suggère d'aller à l'IIS serveur hôte ouvert le eventvwr, vous devriez être en mesure de dire exactement pourquoi l'erreur s'est produite.
regardez dans journaux Windows /Application
Dans mon cas, c'était à cause de disque dur est plein. Le message ressemble à ceci: