ฉันรู้ว่านี่เป็นคำถามพื้นฐานมาก หากมีใครสามารถตลกฉันและบอกฉันว่าพวกเขาจะจัดการกับเรื่องนี้ฉันจะยิ่งใหญ่
ฉันตัดสินใจที่จะโพสต์สิ่งนี้เพราะฉันกำลังจะติดตั้ง SynchToy เพื่อแก้ไขปัญหาด้านล่างและฉันรู้สึกไม่เป็นมืออาชีพเล็กน้อยเมื่อใช้ "ของเล่น" แต่ฉันไม่คิดว่าจะดีไปกว่านี้
หลายครั้งที่ฉันพบว่าเมื่อฉันอยู่ในสถานการณ์นี้ฉันพลาดวิธีที่ชัดเจนในการทำสิ่งต่าง ๆ - มาจากการเป็นนักพัฒนาเพียงคนเดียวใน บริษัท
- แอปพลิเคชันเว็บ ASP.NET ที่พัฒนาบนคอมพิวเตอร์ของฉันในที่ทำงาน
- โซลูชันมี 2 โครงการ:
- เว็บไซต์ (ไฟล์)
- WebsiteLib (C # / dll)
- ใช้ที่เก็บ Git
- นำไปใช้งานบนเว็บเซิร์ฟเวอร์ GoGrid 2008R2
การใช้งาน:
- ทำการเปลี่ยนแปลงรหัส
- กดเพื่อ Git
- รีโมตเดสก์ท็อปไปยังเซิร์ฟเวอร์
- ดึงจาก Git
- เขียนทับไฟล์สดด้วยการลาก / วางด้วย windows explorer
ในขั้นตอนที่ 5 ฉันลบไฟล์ทั้งหมดออกจากรูทเว็บไซต์ .. นี่เป็นสิ่งที่ไม่ควรทำ นั่นเป็นเหตุผลที่ฉันกำลังจะติดตั้ง SynchToy ...
อัปเดต:ขอบคุณสำหรับคำตอบที่เป็นประโยชน์ทั้งหมด ฉันไม่สามารถเลือกคำตอบที่ต้องการได้ - ระหว่างการใช้งานเว็บ - ดูเหมือนว่าฉันมีข้อเสนอแนะที่เป็นประโยชน์หลายประการ:
- Web Project = ทั้งไซต์บรรจุเป็น DLL เดียว - ข้อเสียสำหรับฉันฉันไม่สามารถผลักดันการอัปเดตอย่างง่าย - ในฐานะนักพัฒนาที่โดดเดี่ยวใน บริษัท 50 นี่เป็นสิ่งที่ง่ายกว่าในบางครั้ง
- การดึงโดยตรงจาก SCM ไปยังเว็บรูทของเว็บไซต์ - แต่เดิมฉันไม่ได้ทำแบบนี้เพราะกลัวว่าไดเรกทอรีที่ซ่อนอยู่ของ SCM ของฉันอาจจบลงด้วยการเปิดเผย แต่คำตอบที่นี่ช่วยฉันได้มากกว่านั้น (แม้ว่าฉันยังไม่ชอบ สิ่งที่ต้องกังวลเกี่ยวกับการลืมเพื่อให้แน่ใจว่ายังคงเป็นจริงเมื่อเวลาผ่านไป)
- การใช้เว็บฟาร์มและการปรับใช้กับโหนดอย่างเป็นระบบ - นี่เป็นโซลูชั่นที่เหมาะสำหรับการหยุดทำงานเป็นศูนย์ซึ่งจริงๆแล้วเป็นสิ่งที่ฉันสนใจเนื่องจากไซต์นั้นเป็นแหล่งรายได้ตามเวลาจริงสำหรับ บริษัท ของฉัน - ฉันอาจมีเวลายากที่จะเชื่อใจ แม้ว่าค่าใช้จ่ายของเซิร์ฟเวอร์จะเพิ่มเป็นสองเท่า
-> ในที่สุดการบังคับใช้หลักการพื้นฐานที่ต้องมีการปรับใช้คลิกครั้งเดียวสำหรับเว็บไซต์หรืออื่น ๆ ที่มีบางอย่างผิดอาจเป็นสิ่งที่มีประโยชน์ที่สุดที่ฉันได้รับคำตอบ
อัปเดต 2:ฉันคิดว่าฉันกลับมาที่นี่และอัปเดตด้วยโซลูชันจริงที่ใช้งานมาหลายเดือนแล้วและทำงานได้อย่างสมบูรณ์แบบ (สำหรับโซลูชันเว็บเซิร์ฟเวอร์เดียวของฉัน)
กระบวนการที่ฉันใช้คือ:
- ทำการเปลี่ยนแปลงรหัส
- กดเพื่อ Git
- รีโมตเดสก์ท็อปไปยังเซิร์ฟเวอร์
- ดึงจาก Git
เรียกใช้สคริปต์ชุดต่อไปนี้:
cd C: \ Users \ Administrator
% systemroot% \ system32 \ inetsrv \ appcmd.exe หยุดไซต์ "/site.name:Default เว็บไซต์"
robocopy Documents \ code \ da \ 1 \ work \ Tree \ LendingTreeWebSite1 c: \ inetpub \ wwwroot / E / XF connectionsconfig Web.config
% systemroot% \ system32 \ inetsrv \ appcmd.exe ไซต์เริ่มต้น "/site.name:Default เว็บไซต์"
ดังที่คุณเห็นสิ่งนี้ทำให้ไซต์ล้มเหลวใช้ robocopy เพื่อคัดลอกไฟล์ที่มีการเปลี่ยนแปลงอย่างชาญฉลาดจากนั้นนำไซต์กลับมาสำรอง โดยทั่วไปแล้วจะทำงานในเวลาน้อยกว่า 2 วินาที เนื่องจากปริมาณการใช้งานสูงสุดในไซต์นี้มีประมาณ 2 คำขอต่อวินาทีจึงไม่มีคำขอ 4 รายการต่อการอัปเดตไซต์
Sine ฉันมีความเชี่ยวชาญมากขึ้นกับ Git ฉันพบว่าสี่ขั้นตอนแรกข้างต้นเป็น "กระบวนการด้วยตนเอง" ก็เป็นที่ยอมรับเช่นกันแม้ว่าฉันแน่ใจว่าฉันสามารถม้วนสิ่งทั้งหมดให้เป็นคลิกเดียวหากฉันต้องการ
เอกสารประกอบสำหรับ AppCmd.exe เป็นที่นี่ เอกสารประกอบสำหรับ Robocopy เป็นที่นี่