मैं यह सोचते कर रहा हूँ आप इस लेख के अनुसार WebDeploy 2.0 के लिए सही ढंग से अपने सर्वर कॉन्फ़िगर कर दिया है:
Configure Web Deploy (IIS.NET)
नोट: एमएस वेब तैनात 2.0 का एक ताज़ा और मूल लिंक 'isn जारी किया है टी वास्तव में और अधिक वैध नहीं है। मैंने इसे अपडेट किया है लेकिन मुझे लगता है कि यह समय के साथ एक चलती लक्ष्य होगा।
आप भी अपने विकास/निर्माण/सीआई मशीन पर वेब तैनात 2.0 स्थापित करने की आवश्यकता।
यदि आप अभी भी 1.0 का उपयोग कर रहे हैं तो मैं उन्नयन की अनुशंसा करता हूं, 2.0 में कुछ बड़े सुधार हैं।
का प्रयोग विजुअल स्टूडियो 2010 के फीचर प्रकाशित करें:
दृश्य स्टूडियो साइट पर राइट क्लिक करके एक साइट प्रकाशित कर सकते हैं और चयन करने "प्रकाशित करें"।
दृश्य स्टूडियो 2010 और WebDeploy 2.0 के साथ पकड़ लिया है के एक जोड़े हैं: यह निम्नलिखित संवाद को लाता है। पहला यह है कि वीएस -2010 वेब डिप्लॉय/एमएसडीपॉइंट 2.0 जागरूक नहीं है। तो अगर आप प्रकाशित करने का प्रयास आप निम्नलिखित जैसे एक त्रुटि प्राप्त होगी:
Error 1 Web deployment task failed.((04/02/2011 12:30:40) An error occurred when the request was processed on the remote computer.)
तुम भी विफल अनुरोध में निम्न त्रुटि में सर्वर पर वेब प्रबंधन सेवा के लिए ट्रेसिंग देखेंगे C:\inetpub\logs\wmsvc\TracingLogFiles\W3SVC1
आप यह मानते हुए कि यह चालू कर दी है:
AspNetModuleDiagErrorEvent
Uri /msdeploy.axd
eventData Tracing deployment agent exception. Request ID ''. Request Timestamp: '02/04/2011
System.UnauthorizedAccessException: Access to the path 'D:\' is denied.
ड्राइव अक्षर acco अलग अलग होंगे आपकी आईआईएस साइट पर कौन सा ड्राइव चल रहा है, इस पर आधारित है।
बॉक्स के बाहर, इन-जीयूआई प्रकाशन तंत्र MSDeploy (1.0) के गलत संस्करण का उपयोग करने के लिए डिफ़ॉल्ट है। हम MSDeploy 2.0 का उपयोग करने के लिए VS2010 बताना चाहते हैं। आप संपादन दृश्य स्टूडियो 2010 के devenv.exe.config
फ़ाइल जो में स्थित है ऐसा कर सकते हैं (एक डिफ़ॉल्ट c:\
ड्राइव स्थापित संभालने तुमने किया था):
64 के लिए बिट सिस्टम: c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
32 के लिए बिट सिस्टम: c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
ओपन अप devenv.exe.config
अपने पसंदीदा एक्सएमएल संपादक में (मैं सिर्फ दृश्य स्टूडियो 2010 में ही प्रयोग किया जाता है) और निम्न एक्सएमएल कॉपी:
<dependentAssembly>
<assemblyIdentity
name="Microsoft.Web.Deployment"
publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="7.1.0.0" newVersion="8.0.0.0"/>
</dependentAssembly>
/configuration/runtime/assemblyBinding
अनुभाग को यह करें:
बार जब आप इस पास विजुअल स्टूडियो 2010 के सभी उदाहरणों इस परिवर्तन को प्रभावी करने के लिए अनुमति देने के लिए किया है। VS2010 को पुनरारंभ करें, एक वेब प्रोजेक्ट खोलें और फिर फिर से प्रकाशित करने का प्रयास करें। इस बार यह सफल होना चाहिए।
प्रकाशन का उपयोग कर एक पैकेज बिल्ड:
दृश्य स्टूडियो एक पैकेज बिल्ड कि कमांड लाइन से क्रियान्वित किया जा सकता उत्पादन कर सकते हैं। यह Project -> Build Deployment Package
का उपयोग करके उत्पन्न होता है। निरंतर एकीकरण के लिए सुविधाजनक और जैसे (पैकेज को /t:Package
स्विच के साथ msbuild का उपयोग करके भी उत्पन्न किया जा सकता है)।
पैकेज के लिए आउटपुट फ़ोल्डर आमतौर पर obj\Package
पर डिफ़ॉल्ट होता है।
दुर्भाग्य से विजुअल स्टूडियो 2010 यदि यह कुछ गलत हो जाता है और एक msdeploy आवरण बैच स्क्रिप्ट 1.0 लक्ष्यीकरण और सर्वर के बजाय साइट स्तर पर तैनाती लक्ष्यीकरण उत्पन्न करता है।
अपनी खुद की msdeploy.exe कमांड लाइन तैयार करने के अलावा इस के लिए कोई त्वरित समाधान नहीं है। मैं इस में थोड़ा और अधिक पठनीय बनाने के लिए .:
"C:\Program Files\IIS\Microsoft Web Deploy v2\\msdeploy.exe"
-source:archiveDir='d:\sites\DemoApp\obj\Package\Archive'
-dest:
auto,
computerName='https://yoursite.com:8172/msdeploy.axd?site=yoursitename',
userName='demosite',
password='somepassword',
authtype='basic',
includeAcls='False'
-verb:sync
-disableLink:AppPoolExtension
-disableLink:ContentExtension
-disableLink:CertificateExtension
-setParamFile:"d:\sites\DemoApp\obj\Package\Archive.SetParameters.xml"
-allowuntrusted
नोट करने के लिए पहली बात यह है msdeploy.exe
के लिए पथ है कई लाइनों भर में इस विभाजित कर दिया है। विजुअल स्टूडियो संस्करण 1.0 के लिए एक पथ उत्पन्न करता है। मैंने 2.0 का उपयोग करने के लिए इसे बदल दिया है।
उल्लेखनीय पैरामीटर:
-source:archiveDir=
msdeploy बताता है कि हम एक पैकेज की तैनाती और स्थानीय स्थान
computerName='https://yoursite.com:8172/msdeploy.axd?site=yoursitename'
प्रदान करता है कर रहे हैं - यह बताता है MSDEPLOY IIS7 पर किसी विशिष्ट साइट पर तैनात करने के लिए। yoursitename
बिल्कुल आईआईएस में साइट के नाम से मेल खाना चाहिए।
userName
और password
साइट के लिए प्रतिनिधि प्रबंधक उपयोगकर्ता का नाम है। यह साइट स्तर पर "आईआईएस प्रबंधक अनुमतियों" सुविधा का उपयोग कर कॉन्फ़िगर किया गया है। खाते को स्थानीय विंडोज उपयोगकर्ता खाता होना चाहिए।
-authtype='basic'
- यह बुनियादी प्रमाणीकरण को मजबूर करता है अन्यथा एनटीएलएम प्रमाणीकरण का प्रयास किया जाता है।
-allowuntrusted
- यदि आप अंतर्निहित स्वयं हस्ताक्षरित SSL प्रमाणपत्र का उपयोग करते हैं तो यह किसी SSL प्रमाणपत्र त्रुटियों को अनदेखा करता है।
यदि आप उस कमांड लाइन का उपयोग करते हैं तो आप सफलता के साथ रिमोट आईआईएस 7 सर्वर पर तैनात करने में सक्षम होना चाहिए।
प्रकाशन कच्चे सामग्री:
कभी कभी हम बस सीधे एक स्थानीय फ़ोल्डर से कुछ स्थिर सामग्री (या शायद यह भी एक क्लासिक एएसपी या PHP साइट) प्रकाशित करना चाहते हैं। हम निम्नलिखित msdeploy.exe
कमांड लाइन का उपयोग कर ऐसा कर सकते हैं:
"C:\Program Files\IIS\Microsoft Web Deploy v2\\msdeploy.exe"
-source:contentPath='d:\websites\mysite'
-dest:
contentPath='yoursitename',
computerName='https://yoursite.com:8172/msdeploy.axd?site=yoursitename',
userName='demosite',
password='somepassword',
authtype='basic',
includeAcls='False'
-verb:sync
-allowuntrusted
फिर वही नियम -dest:contentPath
और computerName
के लिए पहले की तरह लागू होते हैं।
मेरा मानना है कि एमएसडीईपी संस्करण के मुद्दों को एसपी 1 में हल किया जाएगा (जिसे मुझे अभी तक देखने का मौका नहीं मिला है)।
एक अंतिम VS2010 पकड़ लिया:
जब दृश्य स्टूडियो 2010 का उपयोग करके प्रकाशन, "प्रकाशित करें" का निर्माण पैकेज एसीएल की साइट की एक अनाम खाते का कारण बनता है परिवर्तित करने के लिए सभी फ़ाइलों और के अपवाद के साथ फ़ोल्डर के लिए केवल पढ़ने के लिए App_Data
फ़ोल्डर जो पढ़ और लिखने के लिए बदला जाता है।
msbuild.exe myproject.csproj /t:Package /p:IncludeSetAclProviderOnDestination=False
मैं से कि उपयोगी डला पाया: आप MSBuild उपयोग कर रहे हैं
<IncludeSetAclProviderOnDestination>False</IncludeSetAclProviderOnDestination>
या:
यह प्रत्येक <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
तहत .csproj
फ़ाइल में निम्न सेटिंग जोड़कर आसपास काम किया जा सकता है यहां:
Skipping setting an ACL in a Visual Studio 2010 deployment package (WayBackMachine link because the original content is no longer available)
यह एक महान पोस्ट केवी है - यहां वास्तव में उपयोगी जानकारी है। हालांकि, मेरी समस्या के लिए, मैंने अभी भी 401 ऑथ त्रुटियों को देखा जब तक कि मैं कंप्यूटर व्यवस्थापक खाते का उपयोग नहीं करता (नीचे अपने स्वयं के उत्तर में समझाया गया)। –
msdeploy.axd? साइट = yoursitename यह मेरे लिए तय है। अगर मैंने साइट पैरामीटर छोड़ा तो मुझे 401 मिल गया। धन्यवाद – Schneider
इस भयानक उत्तर के लिए धन्यवाद। साइट = ... क्या मैंने अभी अपने जीवन के 3 घंटे बिताए हैं! :) – Ragesh