IIS5.0 VbScriptで開発を行っています。

自作したCOMアプリケーションをすべてのページで使用したいと考えているため、インクルードファイル内に、Server.CreateObjectによる自作dllオブジェクトの生成を行うコードを記述し、そのファイルをすべてのページにインクルードしようと考えています。

二つのブラウザを立ち上げ、それぞれで複数のページ遷移したところ、大きなメモリの上昇がみられず、上昇してもすぐに下降するため実用にたえると考えています。

それ以外になにか気になるがございましたらお教えください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

こんにちは。



>自作したCOMアプリケーションをすべてのページで使用し>たいと考えているため、インクルードファイル内に、>Server.CreateObjectによる自作dllオブジェクトの生成を行うコードを記述し、そのファイルをすべてのページにインクルードしようと考えています。

上記を以下のようにglobal.asaファイルを使って簡略化できます。

例:"a"というCOMアプリの"b"というコンポーネントの場合

@global.asaの内容
<OBJECT RUNAT=SERVER SCOPE=Application ID=変数名 PROGID="a.b">
</OBJECT>

例:変数名を"c"とした場合
@x.aspの内容
<%
c.メソッド名 [パラメータ...]
%>

という感じです。
要はasp毎にServer.CreateObjectを記述せずに済む(インクルードを含めて)というだけですが・・・
ただ、ASPは「c」オブジェクトが使われなくなった時、自動的に破棄してくれます。
    • good
    • 0

作成したクラスのインスタンスが各ページごとに別々のものである必要があるか、共通のものである必要があるかによると思います。


それは、COMの作り方によりますが、自作クラスの中にデータを保存している場合(変数に保存しているデータ)、そのデータをそのページだけで使用するか、各ページ共有で使用するかによります。
各ページ独立でなければならない場合、各ページでCreateObjectが必要になりますし、各ページ共通でなければならない場合、#1の方の方法が良いと思います。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q「インスタンス」の意味をわかりやすく教えてください

VBのヘルプなどによく出てくる「インスタンス」という言葉の意味をもっとわかりやすく教えてください。

Aベストアンサー

もっと噛み砕いちゃいましょう。

例えばMac/VというパソコンをGrapeという会社が発売するとしましょう。
Grape社が用意する仕様に従って、製品が出来上がるわけですが、私が買ったMac/Vとあなたの買ったMac/Vは全く同じ仕様ですが、別々に存在するので全く同じ物では有りません。

というお話の中の「仕様」がクラスで、「私のMac/V」や「あなたのMac/V」がインスタンスです。

Qページ遷移方法について

 mitsu1112と申します。どうぞよろしくお願いします。
 現在、ASP.NET2.0にて開発を行っていますが、
何分プログラミング自体初心者であるため、
わからないことだらけです。
 ログイン機能を備えた社員スケジュールを
管理するサーバを構築したいのですが、
私に与えられた任務は、
 「画面の遷移方法について調べ上げ、こういったときに
 こういった方法を使って遷移する」ということを判断する
というものです。
 2.0で行える遷移方法は4つあると認識し、
それぞれの特徴もおおよそとらえていると思いますが、
どの場面でどの方法を使うかという明確な使い分けが
まだ自分にはわかりかねます。
 そこで質問したいのが、こういった使い分けは
どうしたらよいのか、そして自分で勉強するなら
どういったところを調べたらよいでしょうか。
 長くなってすいません。ご回答よろしくお願いします。

Aベストアンサー

Redirectで想定外のページに行くことは考えにくいです。
Redirectの行き先をクライアントから任意入力させれば別ですが。

Cross-Page Postingは実装の仕方によります。
とくに、一つのページに対して複数ページからのデータ引き継ぎを伴う遷移があった場合、データの引き継ぎ方を間違えると大変になります。
データフローが煩雑になるっていうのが悪かったかな?ワークフロー上のデータ引き継ぎ部分が煩雑になります。入力値の検証が混じるととくに。
内部挙動が複雑なので、通常の業務アプリケーションでは使われません。ポストしたときのエラー処理がない場合もしくはブラウザ側でのみ入力チェックが完了する場合は、使用してもかまいません。
また、一つのページに複数の遷移元がない場合がいいでしょう。

Server.Transferを使うと、遷移先ページのURLをブラウザが認識しません。リンクはどうなりますか?
と、いうことは、階層構造にかかわらず、ブラウザがアクセスするページを一元化する必要があるということです。つまり、フロントコントローラとよばれる、すべてのページのアクセスで最初に必ず通る共通の部分を実装する場合と相性がいいのです。大規模なサイト向けです。
※ Transferでこんな引き継ぎもあるよ。こまってもこれで何とかなります。
(1)value = Request.Form["TextBox1"]; // 強引にPOSTの値をとる
(2)this.Context.Items["Name1"] = this.TextBox1.Text; // コンテキストをつかう。
value = (string)this.Context["Name1"];
※Transferはアクセス制御をかけたページにも行くことができるようになる場合があるので注意。


ページ数が一桁程度なら、どの方法をとっても大丈夫です。
困ってもすぐに手入れできるからです。
サンプルページを二つ作って、実感してみるのが先決かもしれません。


こういうドキュメントはなかなか見ません。だから開発チームによってまったく方法が違うと思います。いちばんたくさん見たのは、Hashtableによる受け渡し+RedirectもしくはTransferです。
とりあえずエンタープライズのWEBページ設計の指針になるページを書いておきます。
参考:
http://www.microsoft.com/japan/msdn/practices/type/Patterns/enterprise/espwebpresentationpatterns.aspx

Redirectで想定外のページに行くことは考えにくいです。
Redirectの行き先をクライアントから任意入力させれば別ですが。

Cross-Page Postingは実装の仕方によります。
とくに、一つのページに対して複数ページからのデータ引き継ぎを伴う遷移があった場合、データの引き継ぎ方を間違えると大変になります。
データフローが煩雑になるっていうのが悪かったかな?ワークフロー上のデータ引き継ぎ部分が煩雑になります。入力値の検証が混じるととくに。
内部挙動が複雑なので、通常の業務アプリケーションで...続きを読む

Q知的障害と自閉症の特徴をわかりやすく教えて下さい

知的障害と自閉症の症状や特徴をわかりやすく教えて下さい。


また知的障害と自閉症の違いもわかりやすく教えて下さい。

Aベストアンサー

支援学校教員です。

自閉症と表記する場合、医学的には「知的障がいを伴う」「自閉的な特徴(3つ組)」を持つものを言います。「知的障がいを伴わない」「自閉的な特徴(3つ組)」を持つものは、医学的には「アスペルガー症候群」「高機能自閉症」と言います。

一般的には「知的障がい」はあるなしかかわらず「自閉的な特徴(3つ組)」を持つものを自閉症と言う傾向があります。しかし、医学的には「知的障がい」はあるなしかかわらず「自閉的な特徴(3つ組)」を持つものを「自閉症スペクトラム」「広汎性発達障がい」と言います。

図的には↓のものが一番わかりやすいかと思います。

http://www.gov-online.go.jp/featured/201104/contents/rikai.html

「知的な遅れを伴うこともあります」の灰色部分が「知的障がい」とは言えます。

「自閉的な特徴(3つ組)」は以下のサイトが詳しいです。

http://i-pec.jp/jiheisp01.html

まぁ、自閉症はとっても「わかりにくい障がい」とは言えます。

非常に乱暴な言い方をすれば「自閉症」は「発達する上で、得意・不得意の差がとっても激しくなっている為に、日常生活で非常に困っている人」とは言えるかと、個人的には思います。

それと「知的障がい」は「何らかの脳での機能的な問題を持っていて、認知や判断に非常に時間がかかったり、できなかったりする」と言うのが、一般的かと。

私見です。

支援学校教員です。

自閉症と表記する場合、医学的には「知的障がいを伴う」「自閉的な特徴(3つ組)」を持つものを言います。「知的障がいを伴わない」「自閉的な特徴(3つ組)」を持つものは、医学的には「アスペルガー症候群」「高機能自閉症」と言います。

一般的には「知的障がい」はあるなしかかわらず「自閉的な特徴(3つ組)」を持つものを自閉症と言う傾向があります。しかし、医学的には「知的障がい」はあるなしかかわらず「自閉的な特徴(3つ組)」を持つものを「自閉症スペクトラム」「広汎性発達...続きを読む

Q自動ページ遷移について

VS2005でASP.NETで開発しています。

自動でページ遷移させたいのですが、手法がわからず困っています。

・初期設定ファイルがありここに TimeOut値 を任意に設定
・Application_Start で初期設定を読込み
・複数aspxページで TimeOut後 に任意のページに遷移

ということを行いたいのです。
TimeOut値を固定にすれば
 <body onload="setTimeout('fncHoge()', 5000 ~
というように body タグに埋め込むことで可能なのですが、この場合の「5000」という
値を動的に変更したいと思っています。

どのようにするのが良いのでしょうか?
コーディングで body タグの内容を変更できればとても楽なのですが...
javascriptを動的に埋め込むことで、遷移先を任意に変更することはできています。

Aベストアンサー

> <body onload="setTimeout('fncHoge()', 5000 ~

 <body onload="setTimeout('fncHoge()', <%= TimeOut %> ~
のようにして,コードビハインドなりにTimeOutプロパティを用意すればよいのでは?

Q求電子付加反応とはなんですか? マルコフニコフがさっぱりわかりません わかりやすくおしえてくださいー

求電子付加反応とはなんですか?
マルコフニコフがさっぱりわかりません
わかりやすくおしえてくださいー!!

Aベストアンサー

教科書の説明を読んでわからない人が「さっぱりわかりません」とか「わかりやすく教えてください」と言われても無理な注文です。ある程度の基本を理解した上でわからない点をピンポイントで質問すべきです。
まさか、ここに、教科書よりもわかりやすい説明を長々と図も使わずに書けと言いたいのですか?そんな暇なことをする人はいないと思いますよ。

Q画像をクリックしたときに同ページ内に値付きで遷移する方法

ASPで作成したページ上にカレンダーを表示するプログラムを作っています。
カレンダーは完成したんですが、カレンダーの上に
左右の矢印のgif画像を置き、左だと先月、右だと来月にカレンダーが
変わる機能を追加することになりました。
同じページ内で矢印画像のリンクをクリックした時に、submitボタンのように値を設定することはできますか?
また、これ以外で何か良い方法がありましたらお願いします。

Aベストアンサー

submitさせることは可能ですし
普通はそのような方法を取ると思います
共通の値をSubmitし中身は押した方で切り替えるようにしておくと
SUbみtに反応する方のプログラムが楽になると思います

Qナポレオン・ボナパルトは何をした人ですか?詳しくわかりやすく教えてくれたらありがたいです。

ナポレオン・ボナパルトは何をした人ですか?詳しくわかりやすく教えてくれたらありがたいです。

Aベストアンサー

革命期のフランスの軍人・政治家である。ナポレオン1世(フランス語: Napoléon I、在位:1804年 - 1814年、1815年)として、フランス第一帝政の皇帝にも即位した。 フランス革命後の混乱を収拾して、軍事独裁政権を樹立した。また、戦勝と婚姻政策によって、イギリス、ロシアとオスマン帝国の領土を除いたヨーロッパ大陸の大半を勢力下に置いた(これら一連の経過をナポレオン戦争という)が、最終的に敗北して失脚した。

QCreateObjectの同時実行時について

Excelで入力された複数の台帳から集計する帳票を出力するシステムがあります。
質問の内容は単独で帳票を出力した場合はうまくいきますが、2台のPCから同時に
帳票作成処理を走らせたときに、片方は延々と読み込み中から止まった状態になります。
サーバのメモリを見ると、止まっているとみられるExcel.EXEが残っておりゾンビ状態になっております。
これを2台以上のPC(8台程)で同時にやるとメモリリークが発生してしまい帳票自体が作成できなくなってしまいました。その際はサーバの再起動で解決致しましたがそう何度も再起動が出来る環境ではないので何とか同時に実行出来る方法はないでしょうか。同時に出来ない場合は処理が終わるまで他のPCからの処理はウェイトをかけれればよいと考えています。

環境を以下に記します。
OS:WindowsServer2008Standard 32bit SP1
Webサーバ:IIS7
言語:asp(vbs)

帳票作成自体の処理は以下のようになっております。

Dim objExcelApp
Err.Clear

Set objExcelApp = Server.CreateObject("Excel.Application")

If Err.number <> 0 Then
  ' エラー処理
  Response.write "<font color=red>"
  Response.write "Excelを起動できませんでした<br>"
  Response.write "エラー:" & Err.Description & "<br>"
  Response.write "</font><br>" & vbCrLf
  fncPrintModule = False
  objExcelApp.Terminate
Else
  (…処理)
  objExcelApp.Quit
  Set objExcelApp = Nothing
End If

以上、解決策があればよろしくお願いいたします。

Excelで入力された複数の台帳から集計する帳票を出力するシステムがあります。
質問の内容は単独で帳票を出力した場合はうまくいきますが、2台のPCから同時に
帳票作成処理を走らせたときに、片方は延々と読み込み中から止まった状態になります。
サーバのメモリを見ると、止まっているとみられるExcel.EXEが残っておりゾンビ状態になっております。
これを2台以上のPC(8台程)で同時にやるとメモリリークが発生してしまい帳票自体が作成できなくなってしまいました。その際はサーバの再起動で解決致しましたがそ...続きを読む

Aベストアンサー

どういう仕組みなのか質問の内容だけでは不明ですが、Excelのプロセスが残る理由はなんとなく見えます

objExcelApp.Quit
Set objExcelApp = Nothing
エラー時にも入れてください

Q中学受験 数の性質問題わかりやすく教えてください。

中学受験 数の性質問題わかりやすく教えてください。

問題)35/12をかけても24/7でわっても整数になるようなもっとも小さい分数をこたえなさい。

という問題ですが、子供にわかりやすく説明できる方よろしくおねがいいたします。

Aベストアンサー

 分数が整数になるのは分母が1になる必要があります。
 24/7で割るという事は7/24をかける事になります。

 35/12をかけても7/24をかけても整数になるためには、分数の分子が12と24の公倍数である必要があります。
 もっとも小さいという事ですから、最小公倍数の24に決まります。
 分母ですがもっとも小さいという事ですからできるだけ大きな数字にならないといけませんが、最終的に1にならないと整数になりませんから、かける数の分子35と7の最大公約数7になる必要があります。
 したがってもっとも小さい分数は24/7となります。

QGlobal.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'を作成するには、どうすればよいでしょうか?

Aベストアンサー

ASP.NETではADO.NETを使いましょう。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1662698

また、アプリケーション単位でConnectionを持つのは、同時アクセスがあった場合にバグります(経験者)

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=1662698


人気Q&Aランキング