2008-08-28 6 views
6

मैं उसकी तुलना कर रहा हूँ जावा जहां डिबग मोड में अपने आवेदन सर्वर शुरू कर सकते हैं, तो सर्वर से अपने आईडीई देते हैं। और आप सर्वर को पुनरारंभ किए बिना "फ्लाई पर" अपना कोड बदल सकते हैं। जब तक आपके परिवर्तन किसी भी विधि हस्ताक्षर या फ़ील्ड को प्रभावित नहीं करते हैं, तब तक आप कक्षा के लिए पुन: संकलित कर सकते हैं और एप्लिकेशन सर्वर (सर्वलेट कंटेनर) कक्षा को फिर से लोड कर देगा।एएसपी.NET शेयरपॉइंट अनुप्रयोगों को कम समय लेने वाले डीबगिंग की प्रक्रिया कैसे करें?

मुझे लगता है इस ASP.NET में असंभव है के बाद से सभी वर्गों विधानसभाओं में पैक किया जाता है और आप अनलोड नहीं कर सकता/पुनः लोड विधानसभाओं, आप कर सकते हैं?

तो जब आप एक .aspx पेज और एक विधानसभा GAC के लिए तैनात किया है और आप अपने codebehind वाले परिवर्तनों के विधानसभा पुनर्वितरित और आईआईएस रीसेट करने के लिए है। मैं विशेष रूप से शेयरपॉइंट अनुप्रयोगों के बारे में बात कर रहा हूं और मुझे यकीन नहीं है कि आपको निजी असेंबली के लिए iisreset करना है, लेकिन मुझे लगता है कि आपके पास भी है।

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

आप अपने एएसपी.NET अनुप्रयोगों के डिबगिंग से कम समय लेने के लिए कैसे पहुंचते हैं?

उत्तर

0

और तुम सर्वर

को पुन: प्रारंभ बिना "मक्खी पर" अपने कोड बदल सकते हैं

आप ASP.net के साथ ऐसा कर सकते हैं यदि आप एक वेब साइट परियोजना (कर के रूप में एक वेब अनुप्रयोग परियोजना का विरोध किया)। एक वेब साइट प्रोजेक्ट का उपयोग करके, आप सर्वर पर कुछ भी ताज़ा किए बिना कोड-बैक में परिवर्तन पोस्ट कर सकते हैं, और सर्वर सभी कोड परिवर्तनों पर आपके लिए संकलन कार्य करता है। इस पर अधिक जानकारी के लिए here देखें।

यह भी GAC के लिए विधानसभा की तैनाती के साथ अपने कठिनाइयों को हल करना चाहिए। चूंकि सर्वर वेब साइट प्रोजेक्ट्स के लिए सभी संकलनों को संभालता है, इसलिए फ़ाइलों को बदलने पर आपको किसी असेंबली को फिर से तैनात नहीं करना पड़ेगा।

+0

मुझे लगता है कि आपने "यहां" के लिंक को छोड़ दिया है? और यह SharePoint के साथ काम करेगा? – shapr

4

हाँ निजी असेंबली को आईआईएस के रीसेट की आवश्यकता नहीं है। तो आपको चाहिए सिर्फ xcopy आवेदन के बिन निर्देशिका के लिए नए संस्करण और पृष्ठ को ताज़ा करने (जैसे वी.एस. पोस्ट का निर्माण घटना के रूप में मैंने किया था)। लेकिन कुछ व्यापार बंद हैं। आपको आवेदन web.config फ़ाइल में ट्रस्ट स्तर कम करना चाहिए:

<system.web> 
    ... 
    <trust level="WSS_Medium" originUrl="" /> 
    ... 
</system.web> 

वैसे। मैं इस तरह तैनात करने का सुझाव नहीं देता हूं। यह आराम लिखने-परीक्षण-डीबग चक्र की लंबाई के लिए सिर्फ कामकाज है।

+0

-1: आप अधिक प्रतिबंधक ट्रस्ट स्तर के साथ किसी SharePoint वातावरण पर तैनाते समय इस के सुरक्षा प्रभावों या व्यवहार में परिवर्तनों की व्याख्या नहीं करते हैं। –

3

आप हैं GAC का उपयोग कर रहे हैं, तो आप कम से कम iisapp.vbs /a "App Pool Name" /r बजाय iisreset (यह तुलना में आईआईएस पुनः आरंभ करने की एक ही ऐप्लिकेशन पूल पुनरावृत्ति करने के लिए जल्दी है) कर सकते हैं।

5
कैसे SharePoint के साथ F5 डिबगिंग पाने के लिए पर Matt Smiths ब्लॉग से

। एक बहुत अच्छी चाल है।

  1. विजुअल स्टूडियो (फ़ाइल -> नया -> प्रोजेक्ट -> एएसपी.Net वेब अनुप्रयोग, फ़ाइल नहीं -> नई -> वेब साइट) में एक वेब अनुप्रयोग प्रोजेक्ट बनाएं।
  2. .csproj और .csproj को ले जाएं।उपयोगकर्ता फ़ोल्डर, गुण फ़ोल्डर के साथ, C: \ inetpub \ wwwroot \ wss \ virtualdirectories \ में, जहां SharePoint साइट से संबंधित वेब एप्लिकेशन का नाम या संख्या है जिसे आप डीबग करना चाहते हैं।
  3. किसी मौजूदा समाधान (उदाहरण के लिए STSDEV प्रोजेक्ट) को प्रोजेक्ट संलग्न करें।
  4. स्टार्टअप प्रोजेक्ट के रूप में सेट करें (प्रोजेक्ट नाम पर राइट-क्लिक करें, "स्टार्टअप प्रोजेक्ट के रूप में सेट करें")।
  5. एक्सेस प्रोजेक्ट गुण (प्रोजेक्ट नाम, "गुण" पर राइट-क्लिक करें) और
  6. "सर्वर" सेटिंग के अंतर्गत, "आईआईएस वेब सर्वर का उपयोग करें" पर क्लिक करें, फिर उस SharePoint वेब एप्लिकेशन पर यूआरएल दर्ज करें जिसे आप डीबग करना चाहते हैं पर, उदाहरण के लिए http://mymachine:99
1

सबसे पहले, SharePoint चल रहे कंप्यूटर पर विकसित करें। अधिमानतः, इसका अर्थ वर्चुअल पीसी या वीएमवेयर पर विंडोज सर्वर 2003 चलाना है। यह आपको सर्वर के बीच फ़ाइलों की प्रतिलिपि बनाने और रिमोट डीबगर का उपयोग करने के बजाय सीधे SharePoint कोड को डिबग और डिबग करने देगा।

तैनाती और डिबगिंग की प्रक्रिया को सरल बनाने के लिए एक वीएस ऐड-इन का उपयोग करें। मैं WSPBuilder का उपयोग कर रहा हूं लेकिन मुझे लगता है कि वहां अन्य लोग हैं। डब्ल्यूएसपीबिल्डर के पास समाधान तैनात करने, उन्हें डब्ल्यूएसपी के रूप में पैकेज करने के लिए आदेश हैं, और स्थानीय आईआईएस प्रक्रिया में अपना डीबगर संलग्न करें। यह आपको फ्लाई पर असेंबली जोड़ने/हटाने की अनुमति नहीं देगा, लेकिन आप ब्रेकपॉइंट्स सेट कर सकते हैं और वीएस में तत्काल विंडो के माध्यम से कोड चला सकते हैं।

आपके उत्पादन सर्वर को कॉन्फ़िगर करने के तरीके के आधार पर, disallowing code blocks in ASPX files सहित पूर्ण/ट्रस्ट सुरक्षा सेटिंग्स वाले सर्वर पर विकसित करना आमतौर पर एक अच्छा विचार है। यह डिबगिंग को थोड़ा और कठिन बनाता है, लेकिन जब आपके कोड को अंततः उत्पादन में तैनात किया जाता है तो यह आपके पास आश्चर्यजनक आश्चर्यों की संख्या को कम कर देता है।

0

एकीकरण परीक्षण लिखने के लिए एक स्वचालित परीक्षण ढांचे (एनयूनीट) का उपयोग करें। यह सबकुछ के लिए काम नहीं करेगा, लेकिन निश्चित रूप से, यह आपके परीक्षण के आधार पर निर्भर करता है।

यदि आपके पास TestDriven.NET भी स्थापित है, तो आप डिबगर के साथ व्यक्तिगत परीक्षण चला सकते हैं। यह सहायक रहा है।

0

डब्लूएसपीबिल्डर एक्सटेंशन में "जीएसी पर तैनात" शॉर्टकट है, दुर्भाग्यवश यह मेरे लिए कभी काम नहीं करता है। लेकिन यह कोड-> संकलन-> परीक्षण करने का एक बहुत तेज़ तरीका है।

आप WSPBuilder एक्सटेंशन उपयोग नहीं कर रहे हैं, तो आप के बजाय एक कमांड प्रॉम्प्ट खोलने के लिए और चलाने के

GACUtil कर सकते हैं/u yourassemblynamegoeshere GACUtil/मैं yourdllgoeshere.dll

आप अक्सर ऐसा है, तो आप रख सकते हैं यह एक पोस्ट-बिल्ड इवेंट में या बैच फ़ाइल में है। साथ ही, मैं अस्पष्ट हूं कि gacutil/u (पहले डीएलएल को हटाने के लिए) आवश्यक है।

0

ऐसा लगता है कि आप ऐसा करने की कोशिश कर रहे हैं, शेयरपॉइंट बताएं "जब मैं विजुअल स्टूडियो में डिबगिंग शुरू करता हूं, डीएलएल के संस्करण का उपयोग करें जो डीएलएल के संस्करण की बजाय प्रोजेक्ट की/बिन/डीबग निर्देशिका में संकलित किया गया था यह जीएसी में पंजीकृत है। " मैंने उस समस्या को हल नहीं किया है, लेकिन यहां मैं शेयरपॉइंट को डीबग कैसे करता हूं।

एक डेवलपर मशीन Win2008, आईआईएस 7, MOSS 2007, VisStudio 2008, और WSP बिल्डर स्थापित है। VS2008 के अंदर, एक बटन, w3p.exe प्रक्रिया को संलग्न करने के लिए जोड़ा जाता है Andrew's HOWTO attach to w3p

समाधान फ़ाइल दो परियोजनाएं हैं:
* प्रथम परियोजना .WSP कि DLL सहित सभी ऐप्लिकेशन पृष्ठ, तैनात है।.WSP निर्माण और तैनाती को संभालने के लिए WSPBuilder मेनू आइटम का उपयोग करें।
* दूसरी परियोजना पृष्ठ के पीछे डीएलएल के लिए है।

यदि आप डीएलएल को नियमित रूप से जीएसी में कॉपी करना चाहते हैं, तो डीएलएल की परियोजना में एक पोस्ट-बिल्ड इवेंट जोड़ें जो जीएसी/बिन/डीबग से प्रतिलिपि बनाता है।

लेकिन, इन दिनों, मुझे लगता है कि मैं अभी समाधान का पुन: संकलन कर रहा हूं और फिर मेनू आइटम का उपयोग कर .WSP को तैनात कर रहा हूं, और उसके बाद बटन का उपयोग करके डीबगर शुरू कर रहा हूं। यह मुझे अपनी अधिकांश परियोजनाओं के लिए एक एफ-कुंजी और 3 क्लिक और लगभग एक मिनट लेता है, लेकिन मुझे लगता है कि यह तेज़ हो सकता है।

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