くりーむわーかー

プログラムとか。作ってて ・試しててハマった事など。誰かのお役に立てば幸いかと。 その他、いろいろエトセトラ。。。

VisualStudio

VisualStudioのGitでプロキシエラー

この前VisualStudioのソース管理で同期したら、リモートリポジトリにつなぎに行くところで、急にプロキシエラーになった。エラーは⇒の感じ「リモート サーバーがエラーを返しました: (407) プロキシ認証・・・」

Nuget更新した影響かしら。プロキシエラーと言われましても、どこをいじればいいやら。。。と色々試した結果、「コマンドラインからGitを使って一回リモートリポジトリにアクセスする」とうまくいった。 適当にCloneとかでいいのでコマンドでやると、プロキシじゃなくてリモートリポジトリのパスワード聞かれるから、パスワード入れて普通にCloneしてやる。そうすと、VisualStudio側の同期がうまくいくようになる。

なかなか不思議な感じですね。VisualStudio自体、プロキシの設定はIEの設定を見るらしいし、Gitもそうかなと思ってやってみたらうまくいった。一回通しておくと、キャッシか何かに残ってそれを見るのかしら。。。

VisualStudioで自前サーバのGit(gitbucket)を使う

ソース管理がしたくなったので、VisualStudioから自前サーバのGitを使えるようにした。外部のサービスは使いたくなかったので、Gitはテケトーなサーバで自前で動かす。今回使ったのはgitbucket。サーバOSはWindows2008。

javaで動かすらしいので、JREをインストール。オラクルからダウンロードしてひたすらクリック。途中、変な機能を入れられようとするのでいつも通りチェックはずす。

入れた直後は多分、パスが通ってないので、サーバ再起動する。コマンドプロンプトで「java」って入れて反応なければパス通ってない。

そしたら、gitbucketをダウンロードして適当なとこに置いておく。ダウンロードするのは「gitbucket.war」ってファイル。

とりあえず、動かしてみる。コマンドプロンプトで「gitbucket.war」があるフォルダまで行って、↓のコマンド

java -jar gitbucket.war

あとは「http://localhost:8080/」をブラウザで開いて、起動確認。id/passは両方root。

デフォで8080で動くけど、いろいろ同居させてるので都合悪し。↓でポート変えて再度起動。

java -jar gitbucket.war --port=8008

そしたら、ログインして、空のリポジトリを作る。 01
02

作った後の画面で出てくる↓のURLをコピッとく。 03

そしたらVisualStudio開く。管理したくなったの開いて、ソリューションを右クリ⇒ソース管理に追加 04

TFSとGitどっち使うって聞かれるからGitっていう。そしたら、チームエクスプローラ開いて、とりあえず変更押す。あとはコメントいれてコミット。コメント入れないとコミットさせてくれないいけず。 05

コミットしたら、同期する?ってでるから同期するって言う。 06

リモートリポジトリのURL入れてって言うからさっきコピッておいたURLを入れる。 07

公開押すと、ID/Pass聞いてくるので、root/rootって入れておしまい。あとはcloneでもpushでもご随意に。

ちなみに、URL間違えるようなやんちゃをするとVisualStudioさんは許してくれない。一回しくじると、URLの変更するとこが出てこないのよね・・・。小一時間ほど探したけど見つけられませんでした。誰か教えてください。しょうがないのでそういう場合は設定ファイル直でいじって無かったことにしてもらう。

対象のソリューションのフォルダの中に「.git」ってゆーフォルダができてるので、その中の、「config」ファイルを開いて、↓のremoteってなってるところまるっと消す。 08
これで、URL入力するところが出てくる。

VSのプロキシ

VisualStudio 2012でプロキシ経由でサインインする場合 認証が必要で落とされる。 普通はプロキシの認証ダイアログが出るはずなのに出ないで落とされた場合。 Microsoftのサポートには↓の感じで書いてある。

↓のファイルを変える

C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe.config

ここの<system.net>に<defaultProxy>を設定する。↓の感じ


<system.net>
  <defaultProxy enabled="false" useDefaultCredentials="false">
    <proxy bypassonlocal="True" usesystemdefault="false" proxyaddress="http://XX.XX.XX.XX:8080" />
  </defaultProxy>
</system.net>

ここでプロキシをTrueにしてガンバルと"上手くいかない"
enabledをfalseにすると認証ダイアログが出るようになるのでID/PASSを 入力できるようにするといける。

------2016/5/31追記
なんかこの投稿を見に来る人がやたらいる。みんな困ってるんだな~と。
なんだかVSは結局のところ、IEのプロキシの設定を見ているらしい。会社なんかで、自動構成スクリプトにチェックついてる場合はどうなるんでしょ。今度調べてみよ。自動構成スクリプトを直でとって、書いてあるプロキシとか無理やり設定すればうまくいくんだろうか。。。

2017/5/8追記
MSDN見てたら設定のページを見つけたので追記。ここ。

<defaultProxy enabled="true">
<proxy
usesystemdefault="true"
scriptLocation="http://会社とかで指定されてるURL"
bypassonlocal="true"
/>
</defaultProxy>

プロキシサーバを直指定する場合は別にいいと思いますが、自動構成スクリプトを使う場合はsriptLocationを使うらしい。あとIEの設定を使うみたいなのもあった。昔はこれなかったと思うんだけど、見逃してたかな。。。

2018/6/8追記
プロキシのエラーは↑あたりの設定で通るようになるんだけど、たまに、資格情報の取得に失敗しました的なエラーでハマる事がある。その場合はIEのインターネットオプションで履歴とかを削除するのと、詳細設定タブで設定のリセットをしたら上手くいくようになった。VS2017。

もーね。IEの設定見すぎよ。。。

2019/1/21追記
会社のPC変えたらまたはまったので追記。これで最後にしよう。
環境によるんだろうけど、基本的にはIEのプロキシ設定が出来てれば問題なさげ。
うまくいかない場合はプロキシの使用をfalseにして、IEのブラウザの設定をリセット(詳細設定タブでリセット)して、キャッシュとかの削除して、PCの再起動(重要)してからVS起動すればだいたいうまくいくと思う。エッジの場合は・・・ちと分かりません。

問合せ