1

話を切り上げて、いくつかの背景情報を提供します。私たちのアプリケーションには、Web サービスが最初の要求に応答するまでに最大 20 秒 (!!) かかる非常に大きな起動の問題があります。この初期ラグの後はすべてが非常に高速に実行されますが、初期ラグ自体は非常に大きな問題です。

いずれにせよ、私は過去 2 日間ほどこの問題について調査を行ってきました。送受信されたリクエストの適切なログを取得することができました。その結果、問題は XMLSerializer の作成にあることが判明しました。何年もかかります。

さらにグーグルで調べたところ、「シリアル化アセンブリの生成」プロパティが正しく機能しないことがわかりました。シリアル化を強制するために、ここでこのソリューションに従いました: https://stackoverflow.com/a/8798289/2401855

これは実際に機能しましたが、... うまくいきませんでした。Web サービスをコンパイルしようとすると、Sgen が「型を反映するエラーが発生しました」というエラーをスローし、処理を続行できません。そして最後に、ここに私の質問があります:

  • Sgen.exe がスローした実際のエラーを取得するにはどうすればよいですか? 何が起こっているのかをよりよく理解するのに役立つかもしれませんが、codeproject が参照しているシステム ログ ファイルを調べようとしましたが、何も見つかりませんでした。

  • そもそもなぜエラーがスローされるのですか? この特定のコードに対してスローされます。

    public class Enums
    {
        public enum TypNakladu
        {
            Prijmy = 1,
            Vydaje = 2
        }
    
        public static string GetEnumDescription(Enum value)
        {
            FieldInfo fi = value.GetType().GetField(value.ToString());
    
            DescriptionAttribute[] attributes =
                (DescriptionAttribute[])fi.GetCustomAttributes(
                typeof(DescriptionAttribute),
                false);
    
            if (attributes != null &&
                attributes.Length > 0)
                return attributes[0].Description;
            else
                return value.ToString();
        }
    }
    

「TypNakladu」は、sgen が気に入らないと思われる列挙型です。この特定のクラスまたは含まれる列挙型を単に無視するように sgen を作成する方法はありますか? (他にもありますが、コメントアウトすると、sgenは次のものについて不平を言うだけです)

そして、それはちょうどそれについてだと思います。ここで信じられないほどばかげた間違いを犯していたら申し訳ありません.ASP.NET Webサービスに関しては、私はあまり経験がありません。

4

1 に答える 1