Saya tahu ini adalah pertanyaan yang sangat mendasar. Jika seseorang bisa membuat saya humor dan memberi tahu saya bagaimana mereka akan menangani ini, saya akan sangat berterima kasih.
Saya memutuskan untuk memposting ini karena saya akan menginstal SynchToy untuk memperbaiki masalah di bawah ini, dan saya merasa sedikit tidak profesional menggunakan "Toy" tetapi saya tidak bisa memikirkan cara yang lebih baik.
Sering kali saya temukan ketika saya berada dalam situasi ini, saya kehilangan beberapa cara yang jelas menyakitkan untuk melakukan sesuatu - ini berasal dari menjadi satu-satunya pengembang di perusahaan.
- Aplikasi web ASP.NET dikembangkan di komputer saya di tempat kerja
- Solusi memiliki 2 proyek:
- Situs web (file)
- WebsiteLib (C # / dll)
- Menggunakan repositori Git
- Digunakan di server web GoGrid 2008R2
Penyebaran:
- Buat perubahan kode.
- Tekan untuk Git.
- Remote desktop ke server.
- Tarik dari Git.
- Timpa file langsung dengan menyeret / menjatuhkan dengan windows explorer.
Pada Langkah 5 saya menghapus semua file dari root situs web .. ini tidak bisa menjadi hal yang baik untuk dilakukan. Itu sebabnya saya akan menginstal SynchToy ...
UPDATE: TERIMA KASIH untuk semua tanggapan yang berguna. Saya tidak dapat memilih jawaban mana yang akan ditandai - antara menggunakan penyebaran web - sepertinya saya memiliki beberapa pengguna yang bermanfaat:
- Proyek Web = seluruh situs yang dikemas dalam satu DLL - downside bagi saya Saya tidak bisa mendorong pembaruan sederhana - menjadi pengembang tunggal di perusahaan 50, ini tetap sesuatu yang lebih sederhana di kali.
- Menarik langsung dari SCM ke root situs web - saya awalnya tidak melakukan ini karena takut bahwa direktori tersembunyi SCM saya mungkin akan terpapar, tetapi jawaban di sini membantu saya mengatasi itu (walaupun saya masih tidak suka memilikinya) lebih banyak hal yang perlu dikhawatirkan dari lupa untuk memastikan masih benar dari waktu ke waktu)
- Menggunakan web farm, dan secara sistematis disebarkan ke node - ini adalah solusi ideal untuk zero downtime, yang sebenarnya adalah sesuatu yang saya pedulikan karena situs ini pada dasarnya adalah sumber pendapatan real time untuk perusahaan saya - saya mungkin kesulitan meyakinkan mereka untuk dua kali lipat biaya server.
-> akhirnya, penegakan kembali prinsip dasar bahwa perlu ada penyebaran klik tunggal untuk situs ATAU LAGI SESUATU YANG SALAH mungkin adalah hal yang paling berguna yang saya dapatkan dari jawaban.
UPDATE 2: Saya pikir saya kembali ke ini dan memperbarui dengan solusi aktual yang sudah ada selama berbulan-bulan sekarang dan bekerja dengan sempurna (untuk solusi server web tunggal saya).
Proses yang saya gunakan adalah:
- Buat perubahan kode
- Tekan untuk Git
- Remote desktop ke server
- Tarik dari Git
Jalankan skrip kumpulan berikut:
cd C: \ Users \ Administrator
% systemroot% \ system32 \ inetsrv \ appcmd.exe menghentikan situs "/site.name:Default Web Site"
robocopy Documents \ code \ da \ 1 \ work \ Tree \ LendingTreeWebSite1 c: \ inetpub \ wwwroot / E / XF koneksiconfig Web.config
% systemroot% \ system32 \ inetsrv \ appcmd.exe situs awal "/site.name:Default Web Site"
Seperti yang Anda lihat ini membuat situs turun, gunakan robocopy untuk secara cerdas menyalin file yang telah berubah kemudian membawa situs kembali. Biasanya berjalan dalam waktu kurang dari 2 detik. Karena lalu lintas puncak di situs ini sekitar 2 permintaan per detik, tidak ada 4 permintaan per pembaruan situs dapat diterima.
Karena saya sudah semakin mahir dengan Git, saya telah menemukan bahwa empat langkah pertama di atas menjadi "proses manual" juga dapat diterima, meskipun saya yakin saya bisa menggulung semuanya menjadi satu klik jika saya mau.
Dokumentasi untuk AppCmd.exe ada di sini . Dokumentasi untuk Robocopy ada di sini .