2017-10-14 19 views
0

に取り組んでいない私はそれにインストールされているのUbuntu 16.04でサーバーを持って、ここでlsb_release -a出力です:は、ASP.NETコア2.0 WEBAPIアプリケーションのUbuntu 16.04

lsb_release -a output

私はASP.NETを取得しようとしていますこのサーバーで実行されているCore 2.0アプリ(webapi)。私の目標はKestrelサーバーをポート8000​​で稼動させることです。リモートホスト(localhostだけでなく)から呼び出すこともできます。

私は私がこれまで何をやったかをお見せしましょう:

  1. 私は、.NETコアインストール:

    DOTNET新しいWEBAPI:私はアプリを作成し

    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg 
    sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg 
    sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list' 
    
  2. を-n webapi いくつかの/ tmp/...ディレクトリでロックを取得できないが、ドットネットの新しいコマンド自体が成功したというエラーが表示されます。私はそれが何らかのパーミッションの問題でなければならないと考えていたので、プロジェクトディレクトリの中にsudo dotnet restoreコマンドを適用したところ、すべてうまくいった。

  3. 私はdotnet runでアプリケーションを実行し、Now listening on http://localhost:5000というメッセージを受け取りました。
  4. 私は別のSSHセッションを開き、curl -I http://localhost:5000/api/values/を実行したが、応答は404です:

404 response

私はapp.UseMvcWithDefaultRoute()にStartup.csでapp.UseMvc()を変更しようとしたが、それは助けていない - 私はまだ私にはアクセスできませんValuesController。

ご覧のとおり、すぐに使用できるアプリケーションを実行することはできません。私は何が欠けていますか?

+0

は、[OK]を、コントローラとstartup.cs – Liero

答えて

1

定義されたルートに一致する動詞GETがありません。 デフォルトでは、-IはHEAD要求を送信します。

GETのために、例えば:

$ curl -I -X GET http://localhost:5000/api/values/ 
HTTP/1.1 200 OK 
+0

からのコードを投稿してください、私は今恥ずかしい - 私はのドキュメントを読むとき、私は注意を払っていないと思いますカール。ありがとう、ブルーノ。 – Aranha