QRコード/バーコード認識をASP.NET Web API(Google Compute Engine)で使用する

tips
  • 2017.05.17
  • 技術情報

Visual Studio 2017とCloud SDKCloud Tools for Visual Studioを使用して、ASP.NET Web APIアプリとして作成したQRコード/バーコード認識をGoogle Cloud Platform(GCP)のGoogle Compute Engineにデプロイし、動作を確認します。

LEADTOOLS 19.0JのインストールフォルダLEADTOOLS 19\Examples\JS\Documents\DemosにあるJavaScriptライブラリ用サンプルではバックエンドでASP.NET Web APIを使用しています。このソース部分をそのまま利用してASP.NET Web APIアプリとして作成していきます。

BarcodeController

作成する際のテンプレートは「空」を選択します。「Web API」のチェックボックスをチェックしておきます。

template_blank

LEADTOOLS 19\Examples\JS\Documents\Demos\WebApp\ControllersからBarcodeController.csをControllersフォルダにコピーします。

BarcodeController.cs

LEADTOOLS 19\Examples\JS\Documents\Demos\WebApp\ModelsからBarcodeModels.csをModelsフォルダにコピーします。

BarcodeModels.cs

参照設定にSystem.Runtime.Serializationを追加します。

System.Runtime.Serialization

参照設定にLEADTOOLSのアセンブリを追加します。

Leadtools Assembly

LEADTOOLS 19\Examples\JS\Documents\Demos\WebApp\Tools\ExceptionsからServiceException.cs、LEADTOOLS 19\Examples\JS\Documents\Demos\WebApp\Tools\HelpersからImageResizer.csとServiceHelper.csをコピーします。

ExceptionsAndHelpers

ServiceException.csの以下の部分をコメントアウトします。

ServerException

プロジェクトを右クリックして「Nuget パッケージの管理」を選択します。「Swashbuckle」を検索してプロジェクトに追加します。

NuGet Package

デバッグで使用する画像をLEADTOOLS 19\Examples\JS\Documents\Demos\WebApp\Apps\Barcode\Resources\Imagesからコピーします。

SampleBarcodeImages

Visual Studioの構成マネージャーでソリューションとプロジェクトのプラットフォームをx86に変更します。

VsConfigMgr

Google Cloud SDKCloud Tools for Visual Studioをインストールします。さらにクイックスタートの手順に従ってGoogle Cloud Launcherでこのアプリケーションをホストする仮想マシンを作成しておきます。

GoogleCloudLauncher

クイックスタートの手順に従ってGoogle Cloud Explorerから仮想マシンに認証情報を設定します。

Google Cloud Explorer

Visual StudioからGoogle Compute Engineに発行してみます。

Publish

デプロイが成功すると以下の画面とメッセージが表示されます。

Deployment

その後ブラウザからアプリが起動しますがエラーが表示されます。この状態でURLに「swagger」を追加しても動作しません。

RuntimeError

これはデフォルトの状態では仮想マシン(Windows Server 2016)のアプリケーションプールで32ビットアプリケーションが有効になっていないためです。仮想マシンにはリモートデスクトップ接続できますので、アクセスしてIISマネージャーからアプリケーションプールの設定を変更しておきます。

AdvancedSettings

変更後にIISを再起動してブラウザで確認すると正常に動作しています。

Swagger UI

認識結果が返ってくることを確認できました。以上です。

result

トピックス一覧に戻る