Active Server Pages
はじめに このエントリでは、Windows7にクラシックASP(Active Server Pages)をインストールする方法について書いています。Windows7のIIS7.5にはデフォルトでは、クラシックASPは入っていません。このため、手動でインストールする必要があります。 Windows7…
はじめに このエントリでは、Visual Studio 2008でクラシックASPをデバッグする方法について書いています。 以下の環境で確認しました。 OS Windows XP Professional SP3 IIS IIS 5.1 Visual Studio Visual Studio 2008 Professional 仮想ディレクトリのサー…
Active Server Pagesのコアであるasp.dllは以下の場所に格納されています。 Windows XPでもWindows Serverでも格納場所は同じです。 C:\WINDOWS\system32\inetsrv\asp.dll ASPの本体はC:\WINDOWS\system32\inetsrv\asp.dllです。 これはCOM DLLで、次のペー…
はじめに 僕は、会社に入社してから4年くらいの間、Active Server Pages(最近では、レガシーASPやクラシックASPと呼ばれる)を使ったアプリケーションの開発をしてきました。 昨年、Active Server Pages(レガシーasp)開発で学んだこと(1) - 大人になったら…
はじめに VBScriptで、PHPのhtmlspecialcharsメソッド(特殊文字を HTML エンティティに変換する)を実装してみました。 Function htmlspecialchars(Byref string, Byref quote_style) Dim tmp tmp = string tmp = Replace(tmp, "&", "&") tmp = Replace(t…
はじめに このエントリでは、VBScriptで一方向ハッシュ関数を使って、ハッシュ値を生成する方法について書いています。 結論 VBScriptにはSHA1やMD5といったアルゴリズムを用いてハッシュ値を生成する関数がありません。 このため、ハッシュ値の生成が必要な…
はじめに サーバの情報やアプリケーションにアクセスしてきたクライアントの情報を格納しているServerVariablesコレクションですが、格納している情報のキーが多すぎて、必要な情報をどうやって取得するのかをいつも忘れてしまいます。 そこで、ServerVariab…
はじめに クラシックASP(Active Server Pages)でIISが動作しているサーバとは別のサーバ上にファイルを作成する方法を調べたので、まとめてみました。 別サーバ(リモートサーバ)にファイルを作成する IISの動作しているWebサーバAとネットワークで繋がってい…
はじめに クラシックASP(ASP.NETではない)では、サーバにファイルをアップロードする機能を実現できないと思っていたのですが、クラシックASPでもファイルアップロードの仕組みを実現できることがわかりました。 クラシックASPでファイルアップロードを実現…
クラシックASPのアプリケーションをhttpsの環境で動作させる方法を調べてみました。 IISでhttpsを利用する IISでHTTPSサービスを利用するには、以下の手順でSSL通信を要求するような構成にします。以下のドキュメントは、Windows Server 2000(IIS5.0)向けに…
はじめに VBScriptには、JavaScriptでいうところのarray.sort()のような標準のソート(並び替え)関数がありません。このため、大抵はソート関数を自作することになるのですが、ADODB.Recordsetオブジェクトを使うと、簡単にソートが実現できます。 ADODB.Reco…
ADODB.ConnectionオブジェクトのCommandTimeoutプロパティに指定するタイムアウト時間とSQLServerのSET LOCK_TIMEOUTで指定するタイムアウト時間を混同していたので、調べてみました。 CommandTimeoutプロパティ CommandTimeoutには、ASPなどのスクリプトか…
クラシックASPでODBCを経由してデータベースに接続する方法をコードポケット的に書いてみました。 コードポケット 誰に教えられたのでもないのですが、ぼくは冬眠前のリスのようにコード片を溜め込んでいます。コードを溜め込んでいるディレクトリをぼくは「…
IISで実行されるクラシックASPのスクリプトエンジンは、Unicode(UTF-16)で保存されたASPファイルを解釈できません。Unicode(UTF-16)の形式で保存したASPファイルを実行すると、以下のようなエラーになります。 アクティブ サーバー ページ、ASP 0239 (0x8000…
Windows Server 2003 SP2には、クラシックASPアプリケーションのSession_OnEndが動作しないというバグがあります。 Service Pack 2 (SP2) には、Microsoft Windows の Server 2003 をインストールします。 Session_OnEnd() イベントを使用する ASP Web アプ…
クラシックASPでADODB.RecordSetオブジェクトを使って、データベースから検索するコード。IDとNAMEというカラムを持つ、TABLE1というテーブルのデータをすべて取得する。 ' データベースへの接続 Dim connect : Set connect = CreateObject("ADODB.Connectio…
クラシックASPにおいて、クライアントに出力する際の文字コードは、@codepageディレクティブで指定したコードページに従います。@codepageディレクティブを指定していない場合は、サーバの既定コード*1で出力されます。ただし、Session.Codepageプロパティを…
クラシックASPは、Visual InterDevでデバッグすることができますが、Visual InterDevはUTF-8のソースコードを表示できないという問題があります。この問題を回避するには、Visual Studio 2005(Visual Web Developer)を利用します。 以下、Visual Studio 20…
Visual Studio 2005でクラシックASPをデバッグする方法を探していたら、以下のページを見つけました。Google翻訳を駆使して、訳してみました。 Debugging Classic ASP pages in Visual Studio 2005 on Windows XP Pro Debugging Classic ASP pages in Visual…
Visual Studio 2005でクラシックASPをデバッグする方法を探していたら、以下のページを見つけました。Google翻訳を駆使して、訳してみました。 How to debug classic ASP pages in VS 2005: IIS 5.1 – Mikhail Arkhipov (MSFT)'s WebLog How to debug classi…
Active Server Pages(以下、クラシックASP)のスクリプトエンジンは、文字情報を内部でどのような文字コードとして扱っているのかを調べてみました。結論から言いますと、文字コードセットはUCS-2。そして、エンコーディング方式にはUTF-16LEが使われていま…
はじめに Web系雑記: サロゲートペアをJavaScriptで検出する方法にインスパイアされて、サロゲートペアの文字を検出するVBScriptを作成してみました。 サロゲートペアとは サロゲートペアとは、通称4バイト文字と呼ばれる特殊な文字を表現する方法のことです…
クラシックASPの開発環境は、MicrosoftのVisual InterDevくらいしかないものだと思っていたのですが、Visual Studio 2008 SP1では、クラシックASPのインテリセンス(入力支援機能)とデバッグ機能がサポートされているようです。 前バージョンのVisual Studi…
CDO.Messageオブジェクトを利用してメールを送信すると、通常ではiso-2022-jp(JISコード)エンコーディングで送信されます。日本語以外の外国語を交えたメールを送信する場合には、UTF-8でエンコードしたメールを送信する必要があります。調べてみると、CDO…
Microsoftが提供するInternet Information Server(以下、IIS)には、メタベースと呼ばれる構成情報を管理する機構が存在し、構成情報はメタベースプロパティというプロパティによって参照したり、値を変更することができます。このメタベースプロパティを変…
はじめに VBScriptでファイルを扱う場合、通常はFileSystemObjectを利用します。しかしながら、FileSystemObjectはShift_JISあるいはUTF-16形式で保存されたファイルしか扱えません。このため、VBScriptでUTF-8のファイルを扱うにはADODB.Streamオブジェクト…
クラシックASPで作成したアプリケーションをUTF-8化する際のポイントをまとめてみました。 Webサーバ Windows 2000 および 2003(もちろん2008も)ServerはUnicodeに対応しているため、Webサーバ側で特別な設定をする必要はありません。 Windows 2000 におけ…
クラシックASPで、データベースを操作する際にはADODB.Recordsetを使うことができる。このADODB.Recordsetオブジェクトには、オープンしたレコードセットをクローズするためのcloseメソッドがあるが、このcloseを呼び出す場合にケースによって、エラーするこ…
はじめに レガシーASP(クラシックASP)で、SQLを発行してデータベースからデータを取得する際に、結果として取得したレコードの件数を取得したい場合があります。このエントリでは、ADODB.RecordsetのRecordCountで正しいレコード数を取得する方法を紹介しま…
Visual Studio 2008でレガシーASPをデバッグする方法を探していたら、以下のページが見つかった。まだ検証できていないけど、その前にさくっと訳してみた。 Debugging Classic ASP ( VBScript ) in Visual Studio 2008 はじめに この記事は、Visual Studio 2…