投稿

2月, 2019の投稿を表示しています

Ubuntu+ASP.NET CoreでWebサービス(2)/ASP.Net Coreを動かす

イメージ
前回 今回はASP.NET Coreのプロジェクトを作ってUbuntuで動かすまでのメモ。 [バージョン情報] Ubuntu Server 18.04.1 LTS .NET Core 2.1 Windows10(クライアント) Visual Studio 2017 Community(開発環境) プロジェクトの作成 Visual StudioでASP.NET Coreのプロジェクトを新規作成する。 テンプレートにはAPIを選択。Webアプリケーションとかを選ぶとビュー生成用のコードなどが配備される。でもサーバサイドはAPIの提供に専念する方がきれいだと思う。(.NET FrameworkのWeb APIテンプレートはViewに相当する参照が沢山含まれれて不便だった) 新規プロジェクトにはAPIのサンプルコードとしてValuesController.csが含まれている。 namespace WebApplication1.Controllers { [Route("api/[controller]")] [ApiController] public class ValuesController : ControllerBase { // GET api/values [HttpGet] public ActionResult<IEnumerable<string>> Get() { return new string[] { "value1", "value2" }; } ~省略~ } } この〇〇ControllerクラスがAPIの処理を記述する部分になる。ざっくり言うと、クラスやメソッドにルーティングの属性を付けることで、リクエストに対して呼び出されるメソッドを指定している。この場合"http://xxxx/api/Values/"にGETリクエストすると、サーバではGetメソッドが呼ばれて戻り値の["value1", "value2"

Ubuntu+ASP.NET CoreでWebサービス(1)/.Net Coreを動かす

イメージ
表題の通り。ASP.NETがLinux上で動くと聞いて、Windows系のプログラマでも手が出そうだと思い試してみることに。 まずはASPの前に.NET Coreが動く環境を作るところまで。 [バージョン情報] Ubuntu Server 18.04.1 LTS .NET Core 2.1 Windows10(クライアント) Visual Studio 2017 Community(開発環境) Ubuntu Serverの準備 最終的にはVPS等を使うつもりだけど、まずはVirtualBox上で構築してみる。 インストールメディアのisoイメージを公式ページ( https://www.ubuntu.com/ )からダウンロード。VirtualBoxで新規VMを作り、光学ドライブにisoファイルをマウントしてインストール。なお18.04にはまだ日本語は無いそうで。操作はともかくテキストファイルの中身も読めないのは不都合がありそう。 インストールしたらネットワークの設定だけする。VMに割り当てるのは、外部通信用のNATと、ホストからアクセスする用のホストオンリーアダプターの2つ。 NAT側は自動割り当て、ホストオンリーアダプター側はホストマシンの[VirtualBox Host-Only Network]アダプタと同じネットワークになるように固定IPアドレスを割り振る。ちなみにUbuntu 18.04のネットワークの設定ファイルは[/etc/network/interfaces]ではなく[/etc/netplan/50-cloud-init.yaml]。 # This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # networ