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

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

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

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

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

.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

解決済

2回答

12435閲覧

ASP.NET Global.asax でのエラー?

j-nagnn

総合スコア21

C#

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

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

.NET Framework

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

ASP.NET

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

ASP.NET MVC Framework

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

0グッド

0クリップ

投稿2020/05/12 01:45

編集2020/05/12 03:14

ASP.NET初心者です。

ビルドして、エラーがでなかったので、IIS Express(Google Chrome)で実行したところ、下記のエラーが出てしまいました。
//↓ページに書かれていたエラー分
'/' アプリケーションでサーバー エラーが発生しました。
パーサー エラー
説明: この要求の処理に必要なリソースの解析中にエラーが発生しました。以下の解析エラーの詳細を確認し、ソース ファイルに変更を加えてください。

パーサー エラー メッセージ: 型 'GantDHT.MvcApplication' を読み込めませんでした。

ソース エラー:

行 1: <%@ Application Codebehind="Global.asax.cs" Inherits="GantDHT.MvcApplication" Language="C#" %>

ソース ファイル: /global.asax 行: 1
//ここまで

検索してみても、海外のサイトしか見つかりませんでした。
ASP.NET MVCで同じような現象に遭遇したことがある方、解決策や確認すべきことがあれば教えて欲しいです。

開発環境:VisualStudio2017 , .NETFramework4.6
言語:C# , ASP.NET MVC
以下のサイトの手順に沿って制作しました(名前空間(プロジェクト名)のみ変えてあります)
https://docs.dhtmlx.com/gantt/desktop__howtostart_dotnet.html

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/05/12 02:23

何を作っているか書いてください。ASP.NET と言っても Web Forms, MVC, WebPages, RazorPages などいろいろあります。(MVC という言葉が出てくるので MVC であろうと想像してますが、ちゃんと書いてください) 開発環境を書いてください。Visual Studio のバージョン、.NET なのか Core なのかとそのバージョン。 アプリはどのように作ったのですか? Visual Studio のテンプレートを利用したのであれば Inherits="GantDHT.MvcApplication" の GantDHT というのは質問者さんが設定したプロジェクト名=アプリの名前空間になるはずで、そこに問題が出るとは思えないのですが・・・ 以上の追加情報を質問欄を編集して追記願います。
BluOxy

2020/05/12 03:06

最初からASP.NET MVCのプロジェクトを作成して何もファイル編集せずにビルド&実行したら正常に立ち上がりませんか。そこから確認した方が良さそうです
BluOxy

2020/05/12 03:20

Global.asaxにMvcApplicationクラスは定義されているでしょうか。 そして、namespaceはGantDHTを指定されているでしょうか。 コンパイルエラーはありませんか。
j-nagnn

2020/05/12 03:26

>>Global.asaxにMvcApplicationクラスは定義されているでしょうか。namespaceはGantDHTを指定されているでしょうか。 →Inheritsで定義されています。 Inherits = "GantDHT.MvcApplication" という風に定義されてます。 >>コンパイルエラーはありませんか → ないです。
BluOxy

2020/05/12 03:35 編集

すみません。正しくはGlobal.asaxではなくGlobal.asax.csでした。プロジェクト作成時にGlobal.asax.csも生成されているはずです。そこにGantDHT.MvcApplicationクラスが存在しなければいけません。存在していればその旨を質問文に追記して頂きたいです。 上記で駄目なら、Microsoftのドキュメントを元にプロジェクトを再度作成するのが一番早いと思います。
j-nagnn

2020/05/12 03:37

>>Global.asax.csも生成されているはずです。そこにMvcApplicationクラスが存在しなければいけません。 →存在していません。 "public class Global : HttpApplication " となってます。
guest

回答2

0

名前空間(プロジェクト名)のみ変えてあります

変えたというのは具体的にどのようにしたのか不明ですが、それが今回の問題を起こしているのではないですか?

プロジェクトを作成する際、Visual Studio のテンプレートを利用して、コードに手を加えてないのであれば問題は出ないはずなのですが。

Visual Studio 2019 のテンプレートを使ってプロジェクト名を Mvc5AppIdentityMySQL2 として作った .NET Framework ベースの MVC5 アプリの例で説明します。

プロジェクトを作成すると以下の画像の Global.asax.cs が自動生成されます。質問者さんが参考にした記事の手順で作った場合も、名前空間が違うだけで同様なコードが生成されていませんか?

イメージ説明

上の画像で、名前空間がプロジェクト名と同じ Mvc5AppIdentityMySQL2 となっており、System.Web.HttpApplication を継承した MvcApplication クラスが定義されているのに注目してください。

Global.asax のコードは以下のようになっています。

イメージ説明

Global.asax は Global.asax.cs のクラスを継承しなければなりません。上の画像の赤枠の部分に注目してください。自動生成されるコードできちんと継承されるようになります。

なので、普通に作って手を加えなければ「型 'GantDHT.MvcApplication' を読み込めませんでした」という問題が起こることはないはずですが、「名前空間(プロジェクト名)のみ変えてあります」というところで問題になったのだと思います。

【追記】

質問のコメント欄に、

→存在していません。
"public class Global : HttpApplication " となってます。

とありましたが、それは参考にしている記事のコードの通りですよね。

テンプレートで自動生成されるコードはそのようにはならず、

public class MvcApplication : System.Web.HttpApplication

となるはずですが、質問者さんが参考にしている記事に従って変更したのですか?

だとすると、それが問題なのでしょう。

エラーメッセージを見ると Global.asax では自動生成されたコードのまま Inherits="GantDHT.MvcApplication" となっていますが、それではダメなのは当たり前です。Global に変更したなら Global を継承しなければならないのですから。

投稿2020/05/12 03:45

編集2020/05/12 04:05
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

パーサー エラー メッセージ: 型 'GantDHT.MvcApplication' を読み込めませんでした。

ソース エラー:
行 1: <%@ Application Codebehind="Global.asax.cs" Inherits="GantDHT.MvcApplication" Language="C#" %>
ソース ファイル: /global.asax 行: 1

Global.asax.csも生成されているはずです。そこにMvcApplicationクラスが存在しなければいけません。

→存在していません。
"public class Global : HttpApplication " となってます。

クラス名がGlobalとなっていることが原因です。
なぜそれが生成されているかはこちらにも分かりません。チュートリアルが悪いか、j-nagnnさんが変更してしまったかのどちらかだと思います。

暫定の解決策は、Global.asaxに記載されているInherits="GantDHT.MvcApplication" に合わせて クラス名をGlobalからMvcApplicationへ変更することです。

これで駄目ならば、他の原因調査に時間を割くのはあまりにも時間がかかると思うので、Microsoftのドキュメントを元にASP.NET MVCのプロジェクトを再度作成する方が根本的な問題解決が早くなると思います。

投稿2020/05/12 03:49

BluOxy

総合スコア2663

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

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

BluOxy

2020/05/12 03:51 編集

Global.asax.csに記載しているnamespaceが`GantDHT`であることも確認してください
BluOxy

2020/05/12 04:13 編集

クラス名がGlobalとなっているのはチュートリアル通りなんですね。 では、そこではなくMvcApplicationとGlobal.asaxに記載されている方が問題のようです。Inherits="GantDHT.Global"が正しいのではないでしょうか。
j-nagnn

2020/05/12 04:43

>>暫定の解決策は、Global.asaxに記載されているInherits="GantDHT.MvcApplication" に合わせて クラス名をGlobalからMvcApplicationへ変更することです。 これに従い、実行したところ、想定していた画面が表示されていました。 >>Inherits="GantDHT.Global"が正しいのではないでしょうか。 この修正案でも、通ることが確認できました。 Inherits= ”(名前空間).クラス名” ということを学べました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問