ASP.NET 【型 "xxxx"を読み込めませんでした】 パーサーエラーについて
2009/11/20 11:24更新
Visual Studio IDEで追加したWebフォーム(*.aspx)を実行しようとすると、【型 "xxxx"を読み込めませんでした】 というパーサーエラーが発生してしまい、本文はその解決策について解説します。
問題
LoginPage.aspx<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LoginPage.aspx.cs" Inherits="Test.LoginPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>無題のページ</title> </head> <body> <form id="form1" runat="server"> <div> aa </div> </form> </body> </html>
LoginPage.aspxをデバッグで実行すると、以下のエラーメッセージがブラウザーに表示されます。
'/test' アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------
パーサー エラー
説明: この要求の処理に必要なリソースの解析中にエラーが発生しました。以下の解析エラーの詳細を確認し、ソースファイルに変更を加えてください。
パーサー エラー メッセージ: 型 'Test.LoginPage' を読み込めませんでした。
ソース エラー:
行 1: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LoginPage.aspx.cs" Inherits="Test.LoginPage" %>
行 2:
行 3: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
ソース ファイル: /pms/LoginPage.aspx 行: 1
--------------------------------------------------------------------------------
パーサー エラー
説明: この要求の処理に必要なリソースの解析中にエラーが発生しました。以下の解析エラーの詳細を確認し、ソースファイルに変更を加えてください。
パーサー エラー メッセージ: 型 'Test.LoginPage' を読み込めませんでした。
ソース エラー:
行 1: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LoginPage.aspx.cs" Inherits="Test.LoginPage" %>
行 2:
行 3: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
ソース ファイル: /pms/LoginPage.aspx 行: 1
調べたところ、
[VS.NET] Visual C# .NET を使用して .aspx ページを参照すると "型を読み込めませんでした" のエラー メッセージが表示される
というサポート文書を見つかり、書かれた原因は:
【これらのエラーは、.aspx または Global.aspx ページにコード ビハインド モジュールへの参照が含まれ、アプリケーションがビルドされていない場合に発生する可能性があります。 】
らしい。
早速、再ビルドして、実行しても同じようなエラーメッセージでした。
解決策
方法 : CodeBehind 属性を使用する ASP.NET 1.1 Web ページを ASP.NET 2.0 に移行する
に書いたとおり、
【@ Page ディレクティブの CodeBehind 属性と Inherits 属性を使用する Web ページは、.NET Framework 2.0 でも動作します。ただし、分離コード ファイルをコンパイルし、生成されたアセンブリを Bin フォルダに配置する必要があります。 】
なるほど、早速確認したところ、プロジェクトのプロパティ【ビルド】タブ→【出力パス】は [bin\Debug]となっていました。
出力パスを[bin\Debug]から[bin\]に変更し、実行をかけると正常に表示されました。
また、上の記事では、【.aspx ファイルでは、CodeBehind 属性を CodeFile 属性に置き換えます。】との記述もあるようで、
出力パスを変更せずに、
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LoginPage.aspx.cs" Inherits="Test.LoginPage" %>
を
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="LoginPage.aspx.cs" Inherits="Test.LoginPage" %>
に変更したところ、エラーメッセージが表示されることなく、正常に実行されました。
参考資料
方法 : CodeBehind 属性を使用する ASP.NET 1.1 Web ページを ASP.NET 2.0 に移行する
「MSDN」
方法 : 他のコントロールの分離コード クラスにアクセスする ASP.NET 1.x スタンドアロン クラスを移行する
「MSDN」
Sponsored Link
- 関連記事
- ASP.NETプログラミング Tips - (2009/10/16 14:32)
- Webカスタムコントロールの作成 - - japan.internet.com デベロッパー - (2009/10/16 17:11)
- ASP.NET + jQueryでWebアプリケーション開発 - (2009/10/19 18:15)
- ASP.NETでのフロント・コントローラ(Front Controller)実装 - (2009/10/20 16:47)
- ASP.NET HTTP ハンドラにSessionの使用 - (2009/10/23 11:39)
- ASP.NETライフサイクルレベルの共通処理Global.asaxについて - (2009/11/27 14:53)
- ASP.NET Response.Redirectによる画面遷移 - (2009/12/08 15:34)
- ASP.NET Webアプリのセッション・タイムアウト設定例 - (2011/12/27 15:14)
- ASP.NET HTTP ファイルアップロード例 - (2011/08/22 17:56)
- ASP.NET HTTP ファイルアップロード添付ファイルのサイズを設定について - (2011/08/31 13:55)