:[ASP.NET]App_Code内のクラスが認識できない。

解決


きぬ  2007-10-25 16:43:30  No: 144009

お世話になってます。 

開発環境のPCでは問題なく動作するのですが、webサーバーへ持っていくと 
App_Code内のクラスが宣言されていませんというエラーがでます。 
何が原因かわかりますでしょうか? 

構成は 
  ・[App_Code] - Class1.vb 
  ・Default.aspx 
  ・Default.aspx.vb 
  ・web.config 

コードは 
-----Class1.vb----- 
Imports Microsoft.VisualBasic 

Public Class Class1 
Function aa() As String 
Return "sdadas" 
End Function 
End Class 

-----Default.aspx----- 
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> 

<!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> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></div> 
</form> 
</body> 
</html> 

-----Default.aspx.vb----- 
Partial Class _Default 
Inherits System.Web.UI.Page 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
Dim Msg As New Class1 
Me.TextBox1.Text = Msg.aa
End Sub 
End Class


魔界の仮面弁士  2007-10-25 21:43:42  No: 144010

ASP.NET のマッピングがおかしいのかな…?

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

のコマンドを実行してみると、回復するかも。


きぬ  2007-10-25 22:00:46  No: 144011

魔界の仮面弁士さん、いつもありがとうございます。
残念ながら正常に表示することができませんでした。

以下のようなエラーメッセージがでてきます。

コンパイル エラー 
説明: この要求を送信するために必要なリソースをコンパイル中に、エラーが発生しました。以下のエラーの詳細を確認して、ソース コードを修正してください。 

コンパイル エラー メッセージ: BC30002: 型 'Class1' が定義されていません。

ソース エラー:

 

行 6:      Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
行 7:          'Class1.pID = 1111
行 8:          Dim Msg As New Class1
行 9:  Msg.pID = 1
行 10:         Me.TextBox1.Text = Msg.a
 

ソース ファイル: E:\webdata\Mcpro_Com\WebSite11\Default.aspx.vb    行: 8 

詳しいコンパイラ出力を表示:

C:\WINNT\system32> "C:\WINNT\Microsoft.NET\Framework\v2.0.50727\vbc.exe" /t:library /utf8output /R:"C:\WINNT\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll" /R:"C:\WINNT\assembly\GAC_MSIL\System.Web.Mobile\2.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll" /R:"C:\WINNT\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll" /R:"C:\WINNT\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" /R:"C:\WINNT\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll" /R:"C:\WINNT\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll" /R:"C:\WINNT\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll" /R:"C:\WINNT\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" /R:"C:\WINNT\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll" /out:"C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mcpro_com\faa26c81\eaeb7d2a\App_Web_-dkfvg3s.dll" /debug- /define:_MYTYPE=\"Web\" /imports:Microsoft.VisualBasic,System,System.Collections,System.Collections.Specialized,System.Configuration,System.Text,System.Text.RegularExpressions,System.Web,System.Web.Caching,System.Web.SessionState,System.Web.Security,System.Web.Profile,System.Web.UI,System.Web.UI.WebControls,System.Web.UI.WebControls.WebParts,System.Web.UI.HtmlControls  "C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mcpro_com\faa26c81\eaeb7d2a\App_Web_-dkfvg3s.0.vb" "C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mcpro_com\faa26c81\eaeb7d2a\App_Web_-dkfvg3s.1.vb" "C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\mcpro_com\faa26c81\eaeb7d2a\App_Web_-dkfvg3s.2.vb"

Microsoft(R) Visual Basic Compiler Version 8.0.50727.832
for Microsoft(R) .NET Framework version 2.0.50727.832
Copyright (C) Microsoft Corporation.  All rights reserved.

E:\webdata\Mcpro_Com\WebSite11\Default.aspx.vb(8) : error BC30002: 型 'Class1' が定義されていません。

        Dim Msg As New Class1
                       ~~~~~~

 

--------------------------------------------------------------------------------
バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.832; ASP.NET バージョン:2.0.50727.832


魔界の仮面弁士  2007-10-25 22:23:59  No: 144012

当方の場合でも、提示されたソースそのままを実行して、提示された
同じエラー「BC30002: 型 'Class1' が定義されていません。」が
再現したのですが、先の aspnet_regiis.exe  -i  コマンドを実行することで、
回復したのですが……きぬさんの環境では駄目でしたか。

では一度、ASP.NET のマッピングを -u で解除してから、
再登録してみてはいかがでしょう?
http://msdn2.microsoft.com/ja-jp/library/k6h9cz8h%28VS.80%29.aspx


きぬ  2007-10-25 22:43:59  No: 144013

魔界の仮面弁士さん、ありがとうございます。

WIN2000サーバーなので以下のパスでアンインストールとインストールしましたがやはりだめでした・・・。


魔界の仮面弁士  2007-10-25 23:11:00  No: 144014

ソース配布のかわりに、bin フォルダごとコンパイル結果を
配布した場合は、動作しますか?


きぬ  2007-10-25 23:34:59  No: 144015

同じようにエラーが発生します。
IISの設定なのでしょうか?


魔界の仮面弁士  2007-10-26 00:00:17  No: 144016

@ Page ディレクティブの CodeFile 属性が認識されていないのかも。

サーバ側の設定が、(2.0 ではなく)1.1 になっていたりはしませんか?


きぬ  2007-10-26 00:16:31  No: 144017

IISのNETバージョンの設定は2.0になってました・・・。


きぬ  2007-10-26 00:58:42  No: 144018

.NETのSDKなんて関係ないですよね?


きぬ  2007-10-26 02:42:08  No: 144019

魔界の仮面弁士ありがとうございました!
IISの設定でした。
保管している上位のフォルダをIISでアプリケーションの設定
にしていませんでした。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加