2011-11-08 19 views
8

जब मैं उपयोगकर्ता प्रमाण-पत्र में पास हुआ, तो मेरे पास टीमसिटी के साथ खूबसूरती से काम कर रहे एमएसडीपॉल्ड परिनियोजन था। कमांड लाइन पैरामीटर (कुछ मानों के लिए एनवी चर का उपयोग करके) थे:एकीकृत विंडोज प्रमाणीकरण के साथ मैं MSDeploy और TeamCity का उपयोग कैसे कर सकता हूं?

MSBuild.exe Web.csproj
/P:Configuration=%env.Configuration%
/P:DeployOnBuild=True
/P:DeployTarget=MSDeployPublish
/P:MsDeployServiceUrl= https://%env.TargetServer%/MsDeploy.axd
/P:AllowUntrustedCertificate=True
/P:MSDeployPublishMethod=WMsvc
/P:CreatePackageOnPublish=True
/P:UserName=%env.AdminUser%
/P:Password=%env.AdminPassword%

बहुत अच्छा काम किया। लेकिन अब मैं एकीकृत लेख का उपयोग करना चाहता हूं। मैंने Can MSBuild deploy using integrated authentication or only basic? से ट्रॉय के सुझावों का पालन करने की कोशिश की लेकिन यह चाल नहीं कर रहा है। AuthType = NTLM और एक खाली उपयोगकर्ता नाम में पारित: मैं एक खाली उपयोगकर्ता नाम में गुजर और

/p:AuthType=NTLM

निकटतम मैं मिल को निर्दिष्ट/p के द्वारा होता है निर्दिष्ट करने के विभिन्न संयोजनों की कोशिश की है। लेकिन है कि अभी भी इस त्रुटि में परिणाम है:

Connected to the destination computer ("[my destination server name]") using the Web Management Service, but could not authorize. Make sure that you are using the correct user name and password, that the site you are connecting to exists, and that the credentials represent a user who has permissions to access the site. The remote server returned an error: (401) Unauthorized

मैं वेब प्रबंधन सेवा को स्थानीय और रिमोट सर्वर पर चल रहे है। मैंने दोनों उदाहरणों को उपयोगकर्ता के रूप में चलाने के लिए बदल दिया है, मुझे पता है कि साइट पर उचित पहुंच है - वही उपयोगकर्ता जो काम करता है अगर मैं मैन्युअल रूप से प्रमाण-पत्र में पास करता हूं।

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

एक बात जो मैं देख रहा हूं वह यह है कि डब्लूएमएसवीसी लॉग में यह एनटीएलएम ऑथ के प्रयासों के लिए किसी भी उपयोगकर्ता नाम को लॉगिंग नहीं कर रहा है।

कोई विचार यहां क्या हो रहा है। मैं वास्तव में अपनी टीमसिटी कॉन्फ़िगरेशन में उपयोगकर्ता प्रमाण-पत्रों को स्टोर नहीं करना चाहता हूं।

धन्यवाद।

उत्तर

0

मुझे लगता है कि तैनाती टीमसिटी-एजेंट के खाते से निष्पादित की जाती है। यह आपकी त्रुटि को समझाएगा। सुनिश्चित करें कि इस खाते में तैनाती के लिए उचित अधिकार हैं।

+0

ऊपर टिप्पणी देखें। संक्षिप्त जवाब, यह है। – user1035941

1

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

+0

क्षमा करें मुझे यह इंगित करना चाहिए था। हां, टीमसिटी बिल्ड एजेंट सेवा भी उचित अनुमतियों के साथ खाते के तहत चल रही है। यह हमेशा मामला था, मैंने वेब प्रबंधन सेवा का उपयोग करके संकेत दिया कि "वेब प्रबंधन सेवा का उपयोग करके" त्रुटि हुई है। – user1035941

+0

@Troy क्या आपने NTLM का उपयोग करके WMSvc से सफलतापूर्वक कनेक्ट किया है? एक सरल परीक्षण 'msdeploy.exe -verb: डंप-स्रोत: apphostconfig, wmsvc = SERVER123, उपयोगकर्ता नाम =, authType = ntlm -allowUntrusted' जहां मैं SERVER123 पर एक व्यवस्थापक हूं, 401 त्रुटियां उत्पन्न करता है। – arcain

12

मुझे पता है कि मैं थोड़ी देर से सबमिट कर रहा हूं और इस पर उत्तर दे रहा हूं, लेकिन इस प्रकार की समस्या का पीछा करने वाले किसी और के लाभ के लिए, मैंने अभी यह काम करने में कामयाब रहा है।

ओपी के समान, मैं WMsvc का उपयोग कर दूरस्थ IIS 7.5 सर्वर पर एक वेबसाइट प्रकाशित करने के लिए Windows Server 2008R2 पर TeamCity प्राप्त करने का प्रयास कर रहा था।

मैं 401 त्रुटि के साथ संघर्ष कर जब तक मैं इन सभी चरणों को पूरा कर लिया गया:

  • सुनिश्चित AuthType = NTLM पैरामीटर सेट।

  • उपयोगकर्ता नाम पैरामीटर की आपूर्ति सुनिश्चित करें, लेकिन रिक्त मान पर सेट करें।

    HKLM\Software\Microsoft\WebManagement\Server 
    DWORD WindowsAuthenticationEnabled = 1 
    
  • सुनिश्चित उपयोगकर्ता प्रसंग है जिसके तहत निर्माण एजेंट बिल्ड सर्वर सफलतापूर्वक एक खिड़कियों एकीकृत प्रमाणन कर सकते हैं पर चलता है:

  • सुनिश्चित NTLM प्रमाणीकरण दूरस्थ वेब सर्वर पर सक्षम है, यह एक रजिस्ट्री प्रविष्टि जोड़ने शामिल WMsvc से कनेक्शन।मुझे वास्तव में इस उपयोगकर्ता के रूप में बिल्ड सर्वर पर लॉगऑन करना पड़ा, फिर आईई खोलें, और स्थानीय इंट्रानेट जोन में लक्ष्य वेबसाइट जोड़ें। मूल रूप से, मैं इस URL मार रहा है और IE में सेटिंग्स में फेरबदल जब तक मैं प्रमाणीकरण संकेतों का या 401 त्रुटियों के बिना यह करने के लिए सीधे प्राप्त कर सकते हैं रखा:

    https://[the server]:8172/MsDeploy.axd?site=[the site] 
    

संयोग से, जब मैं प्रमाणन काम कर रहे है, दूरदराज के WMSvc देने शुरू कर दिया मुझे ब्राउनसर में 404 त्रुटियां, जो एक अच्छा संकेत साबित हुआ। इस प्रक्रिया के दौरान, मैंने रिमोट डब्लूएमएसवीसी पर एक एसएसएल प्रमाण भी स्थापित किया जिसे बिल्ड सर्वर द्वारा भरोसा किया गया था - संभवतः एक आवश्यकता नहीं थी, लेकिन इससे मेरे परीक्षण में मदद मिली।

एक बार मैं ऊपर, TeamCity तैनाती पूरा हो गया इस त्रुटि को आयात करना शुरू:

An error occurred when the request was processed on the remote computer. 
The server experienced an issue processing the request. Contact the server administrator for more information. 

मैं ईवेंट लॉग में उपयोगी कुछ भी नहीं मिला है, लेकिन ठीक यहाँ यह सुनिश्चित करें कि प्रमाणीकृत उपयोगकर्ता था सिर्फ था लक्ष्य फ़ोल्डर पर आवश्यक फाइल सिस्टम अनुमतियां। आप अधिक चुनिंदा होना चाहते हैं, लेकिन मैंने उन्हें इनटपब पर पूर्ण नियंत्रण दिया है।

+2

रेग कुंजी WindowsAuthenticationEnabled मैन्युअल रूप से जोड़ने वाले किसी भी व्यक्ति के लिए बस एक नोट - मैंने 3 घंटे से सीख लिया है कि मैंने तैनाती की समस्या निवारण को बर्बाद कर दिया है और सुनिश्चित करें कि आप गलती से पिछली जगह में पीछे की जगह पेस्ट नहीं करते हैं! गाह। स्थानीय इंट्रानेट जोन मुद्दे को इंगित करने के लिए – Michael12345

+0

+1। जब मैंने मेजबाननाम के बजाय computerName = 'https: //192.168 ....: 8172' का उपयोग करने का प्रयास किया तो मुझे यह काम मिल गया। हालांकि रिक्त उपयोगकर्ता नाम निर्दिष्ट करना इसे काम करने के लिए बेकार लगता है। –

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

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