2012-01-17 6 views
12

मैंने एक वेब सर्वर (आईआईएस 7.0 के तहत) पर नई NuGet गैलरी स्थापित की जहां मैं काम करता हूं। साइट स्वयं स्थापित है और ठीक चलाता है। हम खातों को पंजीकृत करने, ईमेल पते की पुष्टि करने और साइट के माध्यम से एक नया पैकेज भी अपलोड करने में सक्षम हैं।मेरी NuGet गैलरी न्यूज पुश से 500 क्यों लौटती है?

हमारी स्वचालित बिल्ड स्क्रिप्ट को नए निर्मित NuGet पैकेज को गैलरी में धक्का देने में सक्षम होना चाहिए। जब मैं NuGet का धक्का आदेश का उपयोग करें:

nuget.exe push build\nuget\BaconAndEggs.1.0.0.1.nupkg 1451002a-8c63-4174-b7ed-73dd3e7bcdf0 -Source http://somenearbyserver/ 

मैं निम्नलिखित परिणाम प्राप्त:

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

वेबसाइट एक नया पैकेज अपलोड करने के लिए ठीक सक्षम है, लेकिन कमांड लाइन नहीं है। यदि मैं फिडलर चलने के साथ पुश कमांड का प्रयास करता हूं, तो पुश कमांड निष्पादित करते समय यह लगातार दो अनुरोधों को देखता है। ऐसा लगता है कि यह वहां है, यह सुनिश्चित करने के लिए साइट को छू रहा है, जबकि दूसरा वास्तविक पुश कमांड है।

Request 1: GET http://somenearbyserver/ 200 OK 
Request 2: PUT http://somenearbyserver/api/v2/package/ 500 Internal Server Error 

पुट अनुरोध की सामग्री सही है, इसमें एपीआई कुंजी और पेलोड शामिल है। वेब सर्वर को देखते हुए, ईवेंट व्यूअर में कोई त्रुटि नहीं होती है और एल्माह कुछ भी नहीं पकड़ती है।

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> 

मैं कमांड लाइन से NuGet Version: 1.6.21205.9031 उपयोग कर रहा हूँ:

फ़िडलर डाल करने के लिए प्रतिक्रिया के रूप में यह पता चलता है।

समस्या क्या हो सकती है?

संपादित: पुष्टि करने अनुमतियों के आधार पर

 
Server Error in Application "NUGET" 

Internet Information Services 7.0 

Error Summary 
HTTP Error 500.0 - Internal Server Error 

The page cannot be displayed because an internal server error has occurred. 

Detailed Error Information 
Module = LiveStreamingHandler 
Notification = MapRequestHandler 
Handler = WebDAV 

Error Code = 0x80070585 
Requested URL = http://somenearbyserver:80/api/v2/package/ 
Physical Path = M:\path\to\nuget-gallery\api\v2\package\ 
Logon Method = Anonymous 
Logon User = Anonymous 

वहाँ भी है कुछ मदद पाठ शामिल, सुझाव: साइट में एपीआई फ़ोल्डर के बारे में विस्तृत त्रुटि पृष्ठों को सक्षम करने के बाद, मैं इस 500 प्रतिक्रिया ऊपर वर्णित के साथ मिलता है और ऐसे, लेकिन जहां तक ​​मैं कह सकता हूं कि अनुमतियों में कुछ भी गलत नहीं है। https://github.com/NuGet/NuGetGallery

आप एक व्यवस्थापक खाता से /elmah.axd मारने की कोशिश कर सकते हैं और यदि आप त्रुटि के बारे में अधिक जानकारी प्राप्त देखें:

उत्तर

22

मैंने आईआईएस उपयोगकर्ता के लिए अनुमतियों को बदलकर इस समस्या को ठीक किया। मैंने IIS_IUSRS पर लेखन अनुमतियां जोड़ दीं।

सही IIS > edit permissions > security

में साइट पर क्लिक करें वहां से आप उपयोगकर्ता या समूह जोड़ने और उन्हें अनुमतियाँ लिखने दे।

+0

+1। ध्यान दें कि समूह का नाम 'IIS_IUSRS' है (अतिरिक्त' i' के साथ)। – Cameron

+0

साइट पर दायाँ क्लिक करते समय "संपादन अनुमतियां" नहीं हैं –

1

मैं तुम्हें नई गैलरी संदर्भ दे रहे मान?

+0

हाँ, मैं नई गैलरी की चर्चा करते हुए कर रहा हूँ। मैंने यह देखने के लिए जांच की कि क्या एल्मा कुछ रिकॉर्ड कर रहा था, और यह कुछ भी नहीं हुआ। मैंने त्रुटि xml फ़ाइलों के लिए ऐप के फ़ोल्डर में भी जांच की है, और कुछ भी नहीं है। –

+0

मैं शुरू करने के अनुरोध में ब्रेक पॉइंट सेट करने का प्रयास करता हूं, यह देखने के लिए कि क्या कोड प्रबंधित किया जा रहा है या नहीं। यदि नहीं तो यह एक आईआईएस विन्यास मुद्दा हो सकता है। –

+0

मैं अपने स्थानीय देव मशीन पर परियोजना भाग गया और NuGet.exe का उपयोग कर स्थानीय स्तर पर एक पैकेज धक्का करने की कोशिश की, और यह ठीक काम किया। मुझे लगता है कि यह निश्चित रूप से एक आईआईएस विन्यास मुद्दा है। गलत कॉन्फ़िगर किए गए किसी भी विचार पर कोई विचार? –

0

चूंकि इसका उल्लेख नहीं किया गया है, यहां मेरा परिदृश्य था:
मैं बिना किसी समस्या के अधिकांश पैकेज को धक्का (और पुनर्प्राप्त) करने में सक्षम था। लेकिन, जब मैंने इसे धक्का देने का प्रयास किया तो एक पैकेज ने 404 त्रुटि उत्पन्न की। ऑनलाइन कई स्रोतों से संकेत मिलता है कि मुझे .nupkg के लिए एक माइम-प्रकार जोड़ना चाहिए, हालांकि यह सब पूरा हुआ (माइम प्रकार के बावजूद) त्रुटि को 500 आंतरिक सर्वर त्रुटि में बदलना था।

यह पता चला है कि प्रश्न में पैकेज सामान्य से थोड़ा बड़ा था, और आईआईएस 30 एमबी, causing the nuget server to return this obscure error पर डिफ़ॉल्ट अनुरोध सीमा को कैप्स करता है।बदल रहा है बड़ा कुछ के लिए सेटिंग system.webServer.security.requestFiltering.requestLimits.maxAllowedContentLength मेरे लिए यह संकल्प लिया (के बाद मैं माइम प्रकार मैं जोड़ा था निकाला गया)।

1

मेरे मामले में यह एक पुराने स्थानीय nuget सर्वर था। संदेश मैं लॉग में पाया:

'YourLib' की स्कीमा संस्करण NuGet के संस्करण के साथ असंगत है 'someVersion.a.b'। http://go.microsoft.com/fwlink/?LinkId=213942 से नवीनतम संस्करण को NuGet अपग्रेड करें।

मेरे मामले में, मैंने nuget डाउनग्रेड किया (एक पुराना nuget.exe डाउनलोड किया) और पैकेज को फिर से बनाया। पुश अब काम करता है। मैं कहीं और प्रक्रिया को परेशान नहीं करना चाहता था और मुझे एक त्वरित समाधान की आवश्यकता थी, लेकिन निश्चित रूप से उस परिदृश्य पर निर्भर करता है। लंबे समय तक मैं nuget अद्यतन करेंगे।

+0

आपको किस संदेश में संदेश मिला? –

संबंधित मुद्दे