2013-01-04 28 views
6

मेरे पास एक एएसपी.नेट, एमवीसी 4, सी # एप्लिकेशन है जिसे मैंने विजुअल स्टूडियो 2012 में विकसित किया है। अब तक मैंने वीएस पब्लिश सुविधा का उपयोग करके एक एज़ूर वेबसाइट पर सफलतापूर्वक तैनात किया है।GitHub के माध्यम से Azure को एक MVC4 C# एप्लिकेशन को तैनात करना। मेरे .gitignore में क्या होना चाहिए?

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

अब, मैं उम्मीद कर रहा था कि एक .gitignore फ़ाइल की अनुपस्थिति में यह पूरी तरह से काम नहीं करेगा और मैं सही था।

तो मेरा प्रश्न है: क्या, मेरे स्थानीय विजुअल स्टूडियो कार्यशील निर्देशिका से मुझे भंडार से बाहर निकलना चाहिए? अर्थात। मेरे .gitignore में क्या होना चाहिए?

इसके अलावा, क्या कोई अन्य कारक है जो मुझे Azure वेबसाइट पर काम करने के लिए आवेदन करने की कोशिश में होना चाहिए?

नोट्स:
1. मुझे https://gist.github.com/2589150 पर एक अच्छा नज़र था, लेकिन यह वीएस कार्य निर्देशिका में जो देख रहा है उसके साथ मेल नहीं लगता है।
2. https://github.com/github/gitignore/blob/master/CSharp.gitignore करीब लगता है और मैं वर्तमान में यह समझने की कोशिश कर रहा हूं कि इसकी कौन सी बिट्स मेरी स्थिति पर लागू होती हैं। उदाहरण के लिए, यदि मैं bin/* को बहिष्कृत करता हूं तो एप्लिकेशन Azure पर तैनाती में विफल रहता है।

अद्यतन:
1) मैं अपने web.config फ़ाइल को संशोधित करके कस्टम त्रुटियों बंद के रूप में @levelnis ने सुझाव दिया:

<configuration> 
    <system.web> 
     <customErrors mode="Off"/> 
    </system.web> 
</configuration> 

मैंने पाया मेरी समस्या डेटाबेस कनेक्शन स्ट्रिंग जो नहीं रह गया था था वीएस प्रकाशन सुविधा द्वारा Azure में परिवर्तित किया जा रहा है। मुझे इसे सीधे संशोधित करना था और रेपो को प्रतिबद्ध करना था।

शीर्ष युक्ति: मुझे एक अलग प्रकाशित प्रोफ़ाइल के साथ अस्थायी Azure वेबसाइट पर प्रकाशित करके एज़ूर पर वीएस प्रकाशन सुविधा को देखने के द्वारा सही स्ट्रिंग मिल गई।

इससे समस्या ठीक हुई और तैनाती बहुत आसानी से चली गई।

2) इस समय तक मैं अपने .gitignore फ़ाइल के रूप में निम्नलिखित था:

 
    # Build Folders 
    obj/ 

    # User-specific files 
    *.user 

    # SQL Server files 
    App_Data/*.mdf 
    App_Data/*.ldf 

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

आखिरकार, उन्हें हटाए बिना रेपो से फ़ाइलों को हटाने के लिए आसान गिट कमांड। उदाहरण के एक जोड़े:

 
    git rm -r --cached obj/* 
    git rm -r --cached */*.user 

और फिर स्पष्ट रूप से बताया प्रतिबद्ध होते हैं और आगे बढ़ाने से पहले .gitignore करने के लिए इन जोड़ें।

उत्तर

2

आपकी समस्या एक .gitignore फ़ाइल नहीं होने से संबंधित नहीं हो सकता है। सबसे बुरी स्थिति में, आप अपने संग्रहित डीएल को अपने भंडार के भीतर बिन फ़ोल्डरों में शामिल करेंगे - एक सामान्य रखरखाव परिप्रेक्ष्य से वास्तव में एक बुरा विचार, लेकिन प्रकाशन से लेकर Azure परिप्रेक्ष्य तक नहीं।

क्या त्रुटि पीले रंग की स्क्रीन या उस संदेश के साथ बस एक खाली स्क्रीन है? यदि यह बाद वाला है तो ऐसा लगता है कि तैनाती विफल रही है। आप वेबसाइट पर एफ़टीपी कर सकते हैं और जांच सकते हैं कि वेबसाइट फाइलें कहां होनी चाहिए। एक लॉग निर्देशिका भी है जो आपको वहां मिलेगी - इसमें कुछ ऐसा हो सकता है जो त्रुटि का निदान करने में मदद करेगा। यहाँ मेरी परियोजना से .gitignore है (तुम्हारा जोड़ने/कुछ बिट्स को हटाने लेकिन कम से कम यह रास्ते से हट DLLs मिलेगा अधिक सामग्री की आवश्यकता हो सकती):

# git ignore file 
_ReSharper.* 
[B|b]in/ 
obj/ 
*.suo 
*.user 

Azure विशिष्ट नहीं है यही कारण है, यह एएसपी है। नेट विशिष्ट। संयोग से, यदि आपको डीएलएस को हटाने की आवश्यकता है और वे प्रतिबद्ध हैं, तो आपको बिन पथ को .gitignore में जोड़ना होगा और सभी डीएलएस को

संपादित करें: <customErrors mode="Off"/> जोड़ें - कम से कम यह बताएगा आप क्या त्रुटि

+1

तो यह तब भी आपके एमवीसी ऐप तक नहीं पहुंच रहा है? क्या आपने तैनाती के बाद ऐप को पुनरारंभ किया था? मैं खुद को हर बार ऐसा कर रहा हूं। आप इसे Azure प्रबंधन पोर्टल में डैशबोर्ड से कर सकते हैं। एक बार फिर से शुरू करने के बाद, ब्राउज़र को बार-बार रीफ्रेश करें जब तक आप ए) 503 त्रुटि देखें, बी) देखें कि 502 त्रुटि सी द्वारा प्रतिस्थापित किया गया है) फिर से रीफ्रेश करें और ऐप पूल पुनरारंभ करें देखें। पोर्टल आपको बताएगा कि यह पुनरारंभ किया गया है लेकिन ऐप पूल वास्तव में रीसायकल करने में लगभग 30-60 सेकंड लगते हैं। – levelnis

+0

ठीक है, जोड़कर मुझे बहुत मदद मिली है। ऐसा लगता है कि यह एक डेटाबेस मुद्दा है। धन्यवाद! एक बार मैंने इसे परिष्कृत करने के बाद भी मैं अपना अंतिम .gitignore भी पोस्ट करूंगा। – harunahi

0

दृश्य स्टूडियो के लिए एक gitignore फ़ाइल का एक अच्छा उदाहरण निम्नलिखित में पाया जाता है:

https://gist.github.com/2589150

Azure पर प्रकाशित करने के लिए के रूप में, मैं ऐसा करने में काफी निपुण नहीं कर रहा हूँ लेकिन मैं आपको सब कुछ मिलेगा कल्पना आप यहाँ की जरूरत है:

http://msdn.microsoft.com/en-us/library/windowsazure/hh420322.aspx

और भी बेहतर, Azure करने के लिए Git के साथ प्रकाशित करने पर एक Microsoft ट्यूटोरियल:

01,235,

http://www.windowsazure.com/en-us/develop/net/common-tasks/publishing-with-git/

+0

मैंने पहले 1 संदर्भ पहले पढ़ा था, लेकिन यह मेरी वीएस कार्यशील निर्देशिका में जो देख रहा था उससे मेल नहीं खा रहा था, इसलिए मैं सोच रहा था कि यह वास्तव में वीएस2012 और एमवीसी 4, आदि पर लागू नहीं हुआ था। दूसरा गिट विशिष्ट नहीं है लेकिन प्रकाशित सुविधा का उपयोग कर मैं पहले से ही उपयोग कर रहा था। आपका तीसरा संदर्भ बिल्कुल ठीक है जिसे मैंने इसे सेट अप करने के लिए किया था। – harunahi

+0

आपको विशेष रूप से क्या त्रुटि मिल रही है? – AdamV

+1

'त्रुटि। आपका अनुरोध संसाधित करते समय एक त्रुटि हुई।' लेकिन कुछ भी नहीं। मुझे यकीन नहीं है कि अधिक जानकारी कहां देखना है। मुझे पता है कि मुझे एक .gitignore बनाने की आवश्यकता है, लेकिन यह समझना चाहते हैं कि वास्तव में क्या और क्यों अनदेखा करने की आवश्यकता है। – harunahi