Azure Service Fabric が Public Preview となりました!以前はローカルのSDKのみ提供されていましたが、なんと Azure へデプロイできるようになりました!
そもそも Service Fabric ってなんだっていうのは過去記事を見てください。
さて、早速次のチュートリアルを試してみました。実際動作するサンプルは http://aka.ms/tryservicefabric で確認できます。
Service Fabric Enters Public Preview - Azure Service Fabric Team Blog - Site Home - MSDN Blogs
準備
- Visual Studio 2015
- 以前は英語版じゃ無いと動かないとかあったけど、日本語版でOKでした
- 新しい Service Fabric のSDK
- サンプルコード
ローカルでの実行手順
サンプルコードを Visual Studio で開く
単純にソリューションを開きます。
実行する
F5かStartを押して実行します。
注意その1
Visual Studio を管理者モードで起動しないと、Service Fabric のエミュレーターが立ち上がらずエラーとなったり、
もうひとつ
注意その2
Web の待ち受けポートが80固定です。他のアプリで使用していると次のようなエラーで起動できません。私の場合、Skypeが邪魔していました。Skypeの設定は Skype がポート 80 と 443 を使用しないようにする - nnasakiのブログ を参照してください。
System.Reflection.TargetInvocationException はユーザー コードによってハンドルされませんでした。 HResult=-2146232828 Message=呼び出しのターゲットが例外をスローしました。 Source=mscorlib StackTrace: 場所 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 場所 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 場所 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 場所 Microsoft.Owin.Hosting.ServerFactory.ServerFactoryAdapter.Create(IAppBuilder builder) 場所 Microsoft.Owin.Hosting.Engine.HostingEngine.Start(StartContext context) 場所 Microsoft.Owin.Hosting.WebApp.Start(String url, Action`1 startup) 場所 WebService.OwinCommunicationListener.OpenAsync(CancellationToken cancellationToken) 場所 C:\Users\nnasaki\Source\Repos\service-fabric-dotnet-management-party-cluster\PartyCluster\WebService\OwinCommunicationListener.cs:行 45 場所 Microsoft.ServiceFabric.Services.Runtime.StatelessServiceBase.<OpenCommunicationListenersAsync>d__a.MoveNext() InnerException: ErrorCode=32 HResult=-2147467259 Message=プロセスはファイルにアクセスできません。別のプロセスが使用中です。 NativeErrorCode=32 Source=System StackTrace: 場所 System.Net.HttpListener.AddAllPrefixes() 場所 System.Net.HttpListener.Start() 場所 Microsoft.Owin.Host.HttpListener.OwinHttpListener.Start(HttpListener listener, Func`2 appFunc, IList`1 addresses, IDictionary`2 capabilities, Func`2 loggerFactory) 場所 Microsoft.Owin.Host.HttpListener.OwinServerFactory.Create(Func`2 app, IDictionary`2 properties) InnerException:
確認する
http://localhost/ にアクセスする
ブラウザに表示されました。
Party now!をクリックしてフォームに記入してSubmitすると
Users が増えていますね。
どうやって動いているの?
Web-based Service Fabric Explorer で確認できます。タスクトレイ次のアイコンを右クリックして「Manage Local Cluster」をクリックします。
するとブラウザで表示されます。かっこよくなった!
ノード5個で動いています。
試しにノード1個落としてみても、無停止で動作し続けることを確認できます。アニメGIFにしてみました。
まとめ
サンプルはこんな感じでサクッと動きます。次回は Azure にデプロイします。
余談
実は公開直後サンプルはビルドエラーが出てたので、最速プルリクをキメてやりました。