2014年05月20日
川俣晶の縁側ソフトウェア技術雑記total 5783 count

Azure SDK 2.3のOnStartの初期化順の問題

Written By: 川俣 晶連絡先

「Azure SDK 2.3のせいだと思うのだが、AzureのOnStartの初期化が問題になった」

「2.2までは動いていたのが動かなくなったの?」

「そうだ」

「何が問題なの?」

「厳密には分からないが、base.OnStart()がキーであるようだ」

「親クラスを呼ぶかどうかってことだね」

「昨夜の段階で動いたコードと動かなかったコードだ」

「2.3になる前は他のパターンでも動いたわけだね?」

「そうだ。たぶんな」

OK? §

        public override bool OnStart()

        {

            try

            {

                // 初期化コード

            }

            catch (Exception e)

            {

                System.Diagnostics.Trace.WriteLine("Exception OnStart:" + e);

            }

            return base.OnStart();

        }

NG? (Case1) §

        public override bool OnStart()

        {

            try

            {

                // 初期化コード

                return base.OnStart();

            }

            catch (Exception e)

            {

                System.Diagnostics.Trace.WriteLine("Exception OnStart:" + e);

                return false;

            }

        }

NG? (Case2) §

        public override bool OnStart()

        {

            try

            {

                  bool b = base.OnStart();

                  // 初期化コード

                  return b;

            }

            catch (Exception e)

            {

                System.Diagnostics.Trace.WriteLine("Exception OnStart:" + e);

                return false;

            }

        }

感想 §

「Azure SDK 2.3は意外と非互換変更が多い感じだ。0.1バージョンが上がっただけとは思えない」

「それでもバージョンアップする意味があるの?」

「ある。結局nuget Hellを解決するには全てのモジュールを最新にするのが早道だからだ。それで解決できる保証はないけどな」

「nuget Hellってなに?」

「昔のDLL Hellみたいなものだ。nugetはバージョン依存性を解決してくれるように見えるが不完全だ。それにnugetを経由せずAzure SDK経由でアップグレードされちゃうモジュールもある。nugetは十分ではない」

「なんでそうなっちゃうわけ?」

「おそらく、DLL Hellで痛い目を見た経験が無い人たちが多数派になって無邪気に素晴らしい(かのように見える)アイデアに夢中になってまた地獄を作り出したってところだろう」

「そんなに地獄? 単に全部最新にすればいいだけではないの?」

「違うな。依存性で指定バージョンより上のモジュールが既に入っているという理由でアップデートが拒否されたモジュールもあった。何も考えずに最新にすらできない」

「より上のバージョンが既に入っていたからって。そんな理由で入らないのは酷いね」

「update-package -IgnoreDependencies (名前)のように、コマンドラインで依存性を無視してアップデートさせたよ。今のところちゃんと動いているようだ」

追記 §

「今のところちゃんと動いているようだと言ってしまったが、実はワーカーロールだけちゃんと動いていなかったので、修正した。続・AzureのOnStartの初期化順の問題 or ODataのバージョン問題参照のこと」

「Webページは動いていたわけだね」

「そうだ。上手くスタートはしていたが、そのあとのロール側の処理で躓いていた」

Facebook

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20140520104311
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.