お世話になってます。
開発環境の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
ASP.NET のマッピングがおかしいのかな…?
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
のコマンドを実行してみると、回復するかも。
魔界の仮面弁士さん、いつもありがとうございます。
残念ながら正常に表示することができませんでした。
以下のようなエラーメッセージがでてきます。
コンパイル エラー
説明: この要求を送信するために必要なリソースをコンパイル中に、エラーが発生しました。以下のエラーの詳細を確認して、ソース コードを修正してください。
コンパイル エラー メッセージ: 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
当方の場合でも、提示されたソースそのままを実行して、提示された
同じエラー「BC30002: 型 'Class1' が定義されていません。」が
再現したのですが、先の aspnet_regiis.exe -i コマンドを実行することで、
回復したのですが……きぬさんの環境では駄目でしたか。
では一度、ASP.NET のマッピングを -u で解除してから、
再登録してみてはいかがでしょう?
http://msdn2.microsoft.com/ja-jp/library/k6h9cz8h%28VS.80%29.aspx
魔界の仮面弁士さん、ありがとうございます。
WIN2000サーバーなので以下のパスでアンインストールとインストールしましたがやはりだめでした・・・。
ソース配布のかわりに、bin フォルダごとコンパイル結果を
配布した場合は、動作しますか?
同じようにエラーが発生します。
IISの設定なのでしょうか?
@ Page ディレクティブの CodeFile 属性が認識されていないのかも。
サーバ側の設定が、(2.0 ではなく)1.1 になっていたりはしませんか?
IISのNETバージョンの設定は2.0になってました・・・。
.NETのSDKなんて関係ないですよね?
魔界の仮面弁士ありがとうございました!
IISの設定でした。
保管している上位のフォルダをIISでアプリケーションの設定
にしていませんでした。
ツイート | ![]() |