これは非常に基本的な質問です。誰かが私にユーモアを与え、彼らがこれをどのように処理するかを教えてくれたら、私はとてもうれしいです。
SynchToyをインストールして以下の問題を修正しようとしているため、これを投稿することにしました。
この状況にいると、何度も痛みを伴う明白な方法を見逃しています。これは、会社で唯一の開発者であることに起因しています。
- 職場のコンピューターで開発されたASP.NET Webアプリケーション
- ソリューションには2つのプロジェクトがあります。
- ウェブサイト(ファイル)
- WebsiteLib(C#/ dll)
- Gitリポジトリを使用する
- GoGrid 2008R2 Webサーバーに展開
展開:
- コードを変更します。
- Gitにプッシュします。
- サーバーへのリモートデスクトップ。
- Gitからプルします。
- Windowsエクスプローラーでドラッグ/ドロップして、ライブファイルを上書きします。
ステップ5では、Webサイトのルートからすべてのファイルを削除します。これは良いことではありません。だから、SynchToyをインストールしようとしています...
更新:すべての有用な応答に感謝します。答えをマークするものを選択することはできません-Web展開を使用する間に-いくつかの有用な提案があるように見えます:
- Webプロジェクト=単一のDLLにパッケージ化されたサイト全体-単純な更新をプッシュすることはできません-50人の会社の孤独な開発者であるため、これは時々より単純なもののままです。
- SCMからサイトのWebルートに直接移動します-私はもともと、SCMの隠しディレクトリが公開されることを恐れてこれをしませんでしたが、ここでの回答はそれを乗り越えるのに役立ちました(私はまだ1確認するのを忘れることを心配することは、時間の経過とともにまだ真実です)
- Webファームを使用し、ノードに体系的に展開する-これは、ダウンタイムがゼロの理想的なソリューションです。これは、サイトが本質的に会社のリアルタイムの収益源であるため、実際に私が気にしていることです。ただし、サーバーのコストは2倍になります。
->最後に、サイトのシングルクリック展開が必要であるか、または他に何か間違っている必要があるという基本原則の強化は、おそらく私が答えから得た最も有用なものです。
更新2:私はこれに戻って、今何ヶ月もの間存在し、完全に機能している実際のソリューションで更新すると思った(私の単一のWebサーバーソリューション)。
私が使用するプロセスは次のとおりです。
- コードを変更する
- Gitにプッシュ
- サーバーへのリモートデスクトップ
- Gitからプル
次のバッチスクリプトを実行します。
cd C:\ Users \ Administrator
%systemroot%\ system32 \ inetsrv \ appcmd.exe停止サイト "/site.name:Default Web Site"
robocopy Documents \ code \ da \ 1 \ work \ Tree \ LendingTreeWebSite1 c:\ inetpub \ wwwroot / E / XF connectionsconfig Web.config
%systemroot%\ system32 \ inetsrv \ appcmd.exe開始サイト "/site.name:Default Web Site"
ご覧のとおり、これによりサイトがダウンし、robocopyを使用して、変更されたファイルをインテリジェントにコピーしてからサイトをバックアップします。通常、2秒未満で実行されます。このサイトのピークトラフィックは1秒あたり約2リクエストであるため、サイトの更新ごとに4リクエストが欠落しても許容されます。
Gitに精通しているので、上記の最初の4つの手順が「手動プロセス」であることも受け入れられることがわかりましたが、必要であればすべてを1回のクリックで処理できると確信しています。