• 締切済み

Global.asaxでクラスを宣言?

お世話になります。 ASP+VB6で開発した場合 Global.asaの冒頭で宣言した <object RUNAT = Server SCOPE = Application id=idName progid="dllName.ClassName" VIEWASTEXT></object> は、 ASP.NET2005ではどう宣言すればよいのでしょうか。 Global.asaxにPublicで宣言してもだめでした。 要は、1度だけ宣言しaspx各ページ全体で共通のクラスを利用したいだけです。 ネット検索および書店にも行きましたがどこにもそのような方法が見つけられませんでした。 本日ASP(.NET)を始めたばかりで、さっぱり判りません。 そもそも使い方が全く間違っているのでしょうか。 それとも、各ページで宣言しなければならなくなったのでしょうか。 よろしくお願いします。

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

ASP→ASP.NET移行テクニック http://www.atmarkit.co.jp/fdotnet/aspmigrt/aspmigrt01/aspmigrt01_01.html パターン3(VB6の部分も.NETに移行)をお勧めします。

miyuyu
質問者

お礼

どうもありがとうございます。 色々いぢっていたら出来るようになりました。 ただ、どこでそうなったのかが今不明です(汗

関連するQ&A

  • oracleを利用できません。(global.asa利用)

    asp + oracle + oo4oをglobal.asaファイルを利用して プログラムを組むことになりまして、ネットでサンプルファイルを見つけまして 実行したところエラーになっていまいます。 サンプルは以下の通りです。 ----global.asa--- 'OO4O用の設定 <OBJECT RUNAT=Server SCOPE=Application ID=OraSession PROGID="OracleInProcServer.XOraSession"> </OBJECT> <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Session_OnStart 'OO4O用の設定(Net*8を使用してOracle8に接続する) Set Session("OraDatabase") = OraSession.DbOpenDatabase("sun151_ora803", "scott/tiger", Clng(3)) Set Session("OraDynaset") = Session("OraDatabase").DbCreateDynaset("select * from emp order by empno", Clng(4)) End Sub Sub Session_OnEnd Set Session("OraDynaset") = Nothing Set Session("OraDatabase") = Nothing End Sub </SCRIPT> ---global.asaここまで--- ---emp_o1.asp--- <%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD> <TITLE>emp_o1.asp</TITLE> </HEAD> <BODY> <% '変数の設定 Dim OraDatabase Dim OraDynaset Dim OraFields Dim fieldNum Dim recNum Set OraDatabase = Session("OraDatabase")   ↑ここでエラーがでます。(line17) Set OraDynaset = Session("OraDynaset") --以下略 ---emp_o1.aspここまで--- エラーとして エラー タイプ Microsoft VBScript 実行時エラー (0x800A01A8) オブジェクトがありません。: '[undefined]' /rhc/emp_o1.asp, line 17 というのが出てしまいます。 VBとoracleの経験はあるのですが、aspは今回初めてです。 しょうもない質問かもしれませんが、どなたかよろしく お願いいたします。

  • Global.asaについて

    お世話になります。 今回ASPを使用してアプリケーション開発をしております。 データベースに接続して、データを拾おうと思うのですが、そのデータベースへの宣言などをGlobal.asaでしようと試みている途中で止まってしまいましたので・・・ Global.asaはルートディレクトリにおいてあり、IISでの設定はセッションONになっております。 テスト的に実行するため、 <SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart Application("test") = "" End Sub Sub Session_OnStart Application.Lock Application("test") = "ttt" Application.UnLock End Sub </SCRIPT> とGlobal.asaには記述してあります。 ASPには <% Response.Write test %> と記述してありまして、実行しますと「ttt」と表示されません。なにか間違っている部分はあるのでしょうか?

  • Global.asaxで Server.CreateObject("ADODB.Connection")が出来ない

    ASP→ASP.netへ移行作業をしています。 Global.asaで、 set Application("DB") = Server.CreateObject("ADODB.Connection") を、 Global.asaxで、 Application("DB") = Server.CreateObject("ADODB.Connection") としたのですが、エラーで、 「コンポーネント 'ADODB.Connection' を作成できません。アパートメント スレッド コンポーネントは、<%@ Page aspcompat=true %> ページ ディレクティブを含むページでのみ作成できます。 」 となってしまします。 <%@ Page aspcompat=true %>を記述すればよいのかと思い、Global.asax中に記述しましたが、エラーになってしまいました。 'ADODB.Connection'を作成するには、どうすればよいでしょうか?

  • asp:Contentタグに別のaspsを読み込む事は?

    VWD2008で.NET3.5を使っています。 testA.aspxファイルに以下の様な事を実現したいのですが、可能でしょうか? <asp:Content ID="Content1" ontentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> testB.aspxの中身 </asp:Content> <asp:Content ID="Content2" ontentPlaceHolderID="ContentPlaceHolder2" Runat="Server"> testC.aspxの中身 </asp:Content>

  • ASP.NET WEBアプリケーションで作成されたページより他の既存ペ

    ASP.NET WEBアプリケーションで作成されたページより他の既存ページへデータを投げたいと考えているのですがセキュリティ上難しいのでは?と考えています。しかし、なんとか代替案がないかと思っておりどなたかヒントをいただけないでしょうか? <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> <asp:TextBox ID="TextBox3" runat="server" Height="72px" TextMode="MultiLine" Width="651px"></asp:TextBox> <br /> <asp:Button ID="Button1" runat="server" Text="Button" />&nbsp;&nbsp; <asp:Button ID="Button2" runat="server" Text="Button" /> <br /> <br /> <asp:Label ID="Label1" runat="server"></asp:Label> 例えばこんな簡単なaspxのページで構成されているとします。 テキストボックスに入れた値を既存のWEBページ(Yahooへのログインだとか)へ入れ込みたいのですが・・・クライアントにスクリプトで作ってとかなら余裕で出来ると思うのですがサーバサイドで仕込むことは難しいでしょうか?回避策とかもあるとなおうれしいのですが・・・よろしくお願いします。

  • マスターページからコンテンツページのメソッドを実行したい

    お世話になります。 マスターページからコンテンツページのメソッドを実行したいです。 よろしくおねがいします。 ********************************** マスタページ:Site1 ********************************** [Site1.Master] <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="Site1" %> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> [Site1.Master.cs] public partial class Site1 : System.Web.UI.MasterPage { ここで、コンテンツページのメソッドを実行 } ********************************** コンテンツページ:WebForm1 ********************************** [WebForm1.aspx] <%@ Page Language="C#" MasterPageFile="Site1.Master" Codebehind="WebForm1.aspx.cs" Inherits="WebForm1" %> <asp:Content ID="Content1" runat="server" ContentPlaceHolderID="ContentPlaceHolder1"> </asp:Content> [WebForm1.aspx.cs] public partial class WebForm1 : System.Web.UI.Page {  protected void Page_Load(object sender, EventArgs e)  {  }  //このメソッドをマスターページで実行したい  public string メソッド()  {   return "XXXXXXX";  } }

  • ページごとに有効な変数

    こんにちは。 ASP.NET2.0+C#で開発しています。 こういった表現でよいのか、いまいち自信がないのですが、ページごとに有効な変数が欲しい場合には、どうすればよいのでしょうか? 例えば、カウンタを実現しようとして、 .aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Count.aspx.cs" Inherits="Count" %> <!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"> 「<asp:Label ID="Num" runat="server" />」<br /> <asp:Button ID="CountButton" runat="server" OnClick="Count_Click" Text="カウント" /> </form> </body> </html> .aspx.cs public partial class Count : System.Web.UI.Page { int count; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { count = 0; Num.Text = count.ToString(); } } protected void Count_Click(object sender, EventArgs e) { count++; Num.Text = count.ToString(); } } と、した場合、countは毎回初期化されてしまうため、ブラウザ上の表示は1から先に進みません。 かといって、 static int count; とすると、複数のブラウザでページを開いた場合に、値を共有してしまいます。 表示が進み、かつ値を共有しないようにするためには、どのような手法を用いればよいのでしょうか? なお、今回は実験のため、int変数一つですが、実際には可変長の配列となる予定です。よろしくお願いします。

  • ASPでoo4o接続ができません。

    WindowsXPpro(IIS6.0) + Orale9i + ASPで開発をしていますが、 oo4o接続がうまくいかず困っています。 IISとDBサーバは同マシン内の同ドライブ(C)にあり、 現在、やむを得ず、DBサーバにて開発を行っています。 色々調べ、以下のことは全て試してみましたが、 どうしても以下のエラーが出てしまいます。 なお、VB6.0で同じDBにoo4oで接続するサンプルを作って試しましたが、 そちらはうまくいきました。 わかる方、どうかご教授ください。 【試したこと&確認したこと】 ・oo4oはインストールされている ・oip9.dll のレジストリ登録(念のため) ・ora92フォルダに、インターネットゲストアカウントの  読み取り実行&書き込みのアクセス許可を与える  (ちなみにフルコントロール許可を与えてもダメでした) ・SQLNET.oraファイルを以下のように書き換え  SQLNET.AUTHENTICATION_SERVICES= (NONE) 【global.asa】 <OBJECT RUNAT=Server SCOPE=Application ID=OraSession PROGID="OracleInProcServer.XOraSession"> </OBJECT> <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Session_OnStart 'OO4O用の設定(Net*8を使用してOracle8に接続する) Set Session("OraDatabase") = OraSession.DbOpenDatabase ("sun151_ora803", "scott/tiger", Clng(3)) Set Session("OraDynaset") = Session ("OraDatabase").DbCreateDynaset("select * from emp order by empno", Clng(4)) End Sub Sub Session_OnEnd Set Session("OraDynaset") = Nothing Set Session("OraDatabase") = Nothing End Sub </SCRIPT> 【エラー内容】 Microsoft VBScript 実行時エラー (0x800A01FB) 例外が発生しました。: 'OraSession.DbOpenDatabase'

  • 【ASP.NET】マスターページに配置されたボタンのイベントを拾いたい

    ※こちらの派生です。 http://oshiete1.goo.ne.jp/qa5222698.html マスターページに配置したボタンのクリックイベントを コンテンツページ(?マスターページを使用するページ)で 拾うことは可能でしょうか? もしくは、マスターページに配置したボタンのクリックイベントの処理を コンテンツページで実装することは可能でしょうか? ボタンの配置は同じだけれど、メソッドの中の処理は コンテンツページ毎に分けたいのです。 例えばマスターページ「hoge」とコンテンツページ「moge」があったとすると 以下のような感じです…。 --------------------------------------------------------------------------- ============== hoge.Master ============== <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="hoge.master.cs" Inherits="xxx.hoge" %> <asp:Content ID="Content3" ContentPlaceHolderID="FooterContentPlaceHolder" runat="server"> <asp:Button ID="btn" runat="server" Text="ぼたん" onclick="btn_Click" /> </asp:Content> ============== hoge.Master.cs ============== protected void btn_Click(object sender, EventArgs e) { // ここではなく } ============== moge.aspx ============== <%@ Page Language="C#" MasterPageFile="~/hoge.Master" AutoEventWireup="true" CodeBehind="moge.aspx.cs" Inherits="xxx.moge" Title="もげ" %> ============== moge.aspx.cs ============== protected void btn_Click(object sender, EventArgs e) { // ここにボタンが押された際の処理を実装したい } --------------------------------------------------------------------------- よろしくお願い致します。

  • 「ASP.NET3.5+AJAX」とWebサイトで指定する文字コードに

    「ASP.NET3.5+AJAX」とWebサイトで指定する文字コードに関して質問があります。 現在、VisualStudio2008(Professional)を使って、新規にWebサイトを開発をしています。 (使用している.NET Frameworkは3.5です) ASP.NET3.5では「ASP.NET AJAX」を標準でサポートしているというので、 ためしにVS2008でWebプロジェクト作成時にデフォルトで用意されていたDefault.aspxに 下記のようにFormタグ直下にScriptManagerコントロールを埋め込んでみました。 <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" /> ・・・ ここでVS2008のデバッガでDefault.aspxのページを表示したところ、 問題なく背景色が白いページが表示されました。(ここまでは問題ありません) 次にWeb.configのglobalizationで、下記のように文字コードを"Shift-jis"にしまいた。 <globalization requestEncoding="Shift_JIS" responseEncoding="Shift_JIS" fileEncoding="Shift_JIS"/> ここで先ほどと同様に、VS2008のデバッガDefault.aspxのページを表示したところ、 次のような内容のエラーダイアログが、2回立て続けに表示されました。 <エラー1つ目> 行:39 エラー:ASP.NET Ajaxクライアント側フレームワークを読み込ませんでした。 <エラー2つ目> 行:49 エラー:'Sys'は宣言されていません。 原因は、globalizationで文字コードをを変えた直後に発生したエラーなので、 ASP.NET AJAXを利用するには、UTF-8じゃないと問題ありということはわかったのですが・・・。 この問題を解決するには、globalizationに指定する文字コードを"UTF-8"にするしか 方法がないのでしょうか?(Webサイトの仕様上、なるべく"Shift-jis"を指定したく思っています) ご教授の程、宜しくお願い致します。