読者です 読者をやめる 読者になる 読者になる

M12i.

学術書・マンガ・アニメ・映画の消費活動とプログラミングについて

dotnet restoreしたら504 (Gateway Timeout)

macOS C#

Microsoftが.NETの自社製造コードを対象としたオープンソース化とマルチプラットフォーム公式サポートを宣言してからしばらくが経ったところで、「では、そろそろMacで.NETやってみますか」と腰を上げました。・・・が、結果「やはりまだまだか」と撤退。XamarinのMonoはともかく、Microsoftの.NET Coreはまだ私が触られるレベルじゃないなと判断しました。

Github上に開設された公式サイトWelcome to .NET Coreに掲載された方法で.NET Coreをインストールしdotnet newでプロジェクトを初期化、dotnet restoreで依存するパッケージのダウンロードを実施・・・まで進んだところでエラーに遭遇。

NuGet.configに記載されたリモート・リポジトリからのパッケージダウンロードに際して、System.Collectionsなど標準ライブラリのいくつかで先方から応答がないか、応答が極めて遅いかで"504 (Gateway Timeout)"になってしまいます。そして当然この状態で次のステップdotnet runコンパイルと実行)を行ってもHello Worldアプリのコンパイルができずエラーとなります。

エラーの性格上、一時的なものである可能性もありますし、私個人のネットワーク環境依存の問題の可能性も大いにありうると考えています。が、いずれにせよしばらくは触らないでおこうと判断しました。JavaJavaScriptなどに比べると、.NET関連の情報はネット上ではとても見つけづらいものです。.NETを称揚する記事はいくらでもありますが、標準ライブラリとサードパーティ製ライブラリに関する情報の少なさは、ついこの間までMVCも知らなかったガラパゴス状態のコミュニティには問題としてきちんと理解されていないフシがあります。

今回の事象も数時間あれこれ検索してみたものの解決にはいたらず、どころか類似事象に関する情報を見つけるのも一苦労でした。自分はあくまでユーザだという自覚を持つ者が、解決の見込みのないものに打ち込む意味はありません。というわけでしばらく静観しておこうということになりました。

ちなみに私が試したときの各種バージョン情報は以下のとおり:


またエラー発生時にターミナルに出力されたメッセージは以下のとおり:

  GET https://www.myget.org/F/dotnet-core/api/v3/flatcontainer/system.runtime.numerics/4.0.1-rc2-23704/system.runtime.numerics.4.0.1-rc2-23704.nupkg
Error: DownloadPackageAsync: https://www.myget.org/F/dotnet-core/api/v3/flatcontainer/system.collections/4.0.11-rc2-23704/system.collections.4.0.11-rc2-23704.nupkg
  Response status code does not indicate success: 504 (Gateway Timeout).
----------
System.Net.Http.HttpRequestException: Response status code does not indicate success: 504 (Gateway Timeout).
   at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
   at Microsoft.Dnx.Tooling.Restore.NuGet.HttpSource.<GetAsync>d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Dnx.Tooling.Restore.NuGet.PackageUtilities.<OpenNupkgStreamAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Dnx.Tooling.Restore.NuGet.NuGetv3Feed.<OpenNupkgStreamAsync>d__18.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Dnx.Tooling.Restore.NuGet.PackageUtilities.<OpenNuspecStreamFromNupkgAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Dnx.Tooling.Restore.NuGet.NuGetv3Feed.<OpenNuspecStreamAsync>d__16.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Dnx.Tooling.RemoteWalkProvider.<GetDependencies>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Dnx.Tooling.RestoreOperations.<FindLibraryEntry>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Dnx.Tooling.RestoreOperations.<CreateGraphNode>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Dnx.Tooling.RestoreOperations.<CreateGraphNode>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Dnx.Tooling.RestoreOperations.<CreateGraphNode>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Dnx.Tooling.RestoreOperations.<CreateGraphNode>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Dnx.Tooling.RestoreCommand.<CreateGraphNode>d__71.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Dnx.Tooling.RestoreCommand.<RestoreForProject>d__69.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.Dnx.Tooling.RestoreCommand.<>c__DisplayClass68_0.<<Execute>b__2>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.Dnx.Tooling.RestoreCommand.<Execute>d__68.MoveNext()
----------
Restore failed
Response status code does not indicate success: 504 (Gateway Timeout).

NuGet Config files used:
    /Users/foo/Devel/dotnet/hello/nuget.config

Feeds used:
    https://www.myget.org/F/dotnet-core/api/v3/flatcontainer/
    https://api.nuget.org/v3-flatcontainer/