2017-10-14 149 views
0

我有一個服務器上安裝Ubuntu的是16.04,這裏是一個lsb_release -a輸出:ASP.NET 2.0核心應用的WebAPI 16.04

lsb_release -a output

我試圖讓我的ASP.NET核心2.0應用程序(webapi)在此服務器上運行。我的目標是在端口8000上運行Kestrel服務器,這樣我就可以從任何遠程主機(不僅從本地主機)調用它。

讓我告訴你,我迄今所做的:

  1. 我安裝了.NET的核心:

    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. 我創建了一個應用程序:

    DOTNET新的WebAPI -n webapi 我在這裏得到一個錯誤,表示無法在某些/ tmp/...目錄中獲得鎖,但dotnet新命令本身成功。我認爲它必須是某種權限問題,所以我在項目目錄中應用了sudo dotnet restore命令,並且它都很好。

  3. 我用dotnet run運行應用程序,並得到消息說Now listening on http://localhost:5000
  4. 我打開了另一個SSH會話和執行curl -I http://localhost:5000/api/values/但響應404:

404 response

我試圖改變Startup.cs到app.UseMvc(),但app.UseMvcWithDefaultRoute()它並沒有幫助 - 我仍然無法訪問我的ValuesController。

正如您所看到的,我無法運行開箱即用的應用程序。我錯過了什麼?

+0

嘗試從控制器和startup.cs張貼代碼 – Liero

回答

1

您缺少與定義的路由相匹配的動詞GET。 默認情況下 - 我將發送HEAD請求。

例如,對於一個GET:

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

好吧,我很尷尬,現在 - 我想閱讀的文檔時,我沒注意捲曲。謝謝布魯諾。 – Aranha