質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

Q&A

解決済

1回答

2955閲覧

ASP.NET MVCのスタックトレースの意味を知りたい

noy__tech

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

0グッド

1クリップ

投稿2021/02/20 03:23

編集2021/02/20 03:27

困っていること

「<>c__DisplayClass11_0.」のような書き方は何を表しているのでしょうか?

System.Web.Mvc.Async.<>c__DisplayClass11_0.<InvokeActionMethodFilterAsynchronouslyRecursive>b__0() +58 System.Web.Mvc.Async.<>c__DisplayClass11_2.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2() +228 System.Web.Mvc.Async.<>c__DisplayClass7_0.<BeginInvokeActionMethodWithFilters>b__1(IAsyncResult asyncResult) +10

試したこと

以下の言葉でググってみるも解説記事には出会えませんでした。
「スタックトレース 読み方」
「ASP.NET MVC スタックトレース 読み方」
「C# スタックトレース 読み方」

System.Web.Mvc.Async名前空間のクラスを表しているとは思うのですが...
どなたかわかる方ご教授いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hihijiji

2021/02/20 06:07

そういうときは"DisplayClass"でググるといいですよ
guest

回答1

0

ベストアンサー

スタックトレースとは、例外が発生した際にその例外が「どのような呼び出しパスに沿って呼び出された結果として発生したものなのか」を表したものです。

それには ASP.NET ランタイムやクラスライブラリによる基盤処理部分の公開されてないメソッドなども含まれており、

「<>c__DisplayClass11_0.」のような書き方は何を表しているのでしょうか?

というのも、それに含まれるメソッドだと思います。非公開ゆえ何に使われているかは分かりません。調べればわかるかもしれませんが、調べてもユーザーが行う例外解決の役には立たなそうです。(基盤処理部分のバグを調べて報告するとかであれば話は違ってくると思いますが)。

スタックトレースに含まれるのは大別して以下の部位に分けられ、ユーザーが書いたメソッドは (3) に出てきます。

(1) ASP.NET ランタイムやクラスライブラリによる基盤処理部分
(2) 基盤処理部分から呼び出されたユーザーアプリケーション部分
(3) ユーザーアプリケーションから呼び出されたクラスライブラリ部分

例えば EF6 + Linq to Entities のコードで接続文字列が見つからなかった場合が以下のエラーメッセージです。自分が書いたメソッド ListToAsync() もスタックトレースに出てきてます。そこはある程度役に立つ情報かもしれません。

質問者さんの言われる「<>c__DisplayClass11_0.」ほか、(1), (2) の部分も多々出てきています。(それらがユーザーが行う例外解決に役に立つのかというと、どうでしょう?)

イメージ説明

投稿2021/02/20 06:05

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

noy__tech

2021/02/20 07:13 編集

ASP.NET ランタイムやクラスライブラリによる基盤処理部分の公開されてないメソッド」のことだろうということですね。 おっしゃる通り、ユーザーが書いたメソッドとはあまり関係ない部分であり、エラー解決にはそこまで役立たないと思いますが、その認識自体があまり確証持てていなかったため助かりました。 丁寧にご回答いただき誠にありがとうございました。
退会済みユーザー

退会済みユーザー

2021/02/20 09:10

c__DisplayClass11_0 が何かというのは hihijiji さんが質問へのコメントで書かれているように DisplayClass でググるといろいろヒットすると思いますので興味があればやってみてください。コンパイラが生成するものだそうです。 そのあたりを突き詰めるより、EF + Linq to Entities でトラブって解決が困難な時は EF のログを出力ウィンドウに書き出して、それを見た方が良いかもしれません。以下、ご参考まで。 データベース操作のログ記録と受信 https://docs.microsoft.com/ja-jp/ef/ef6/fundamentals/logging-and-interception
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問