1 名前:nobodyさん mailto:sage [2005/07/03(日) 12:27:28 ID:???] レガシASPについて語るスレです。質問や雑談もOK。 何より手軽なので社内イントラであればまだまだ第一線です。 ASP.net については専用スレッドでお願いします。 関連スレ: 【質問】ASP.NETスレ Part2【議論】 pc8.2ch.net/test/read.cgi/php/1111480331/ 過去スレ: ==ASP== Part 3 pc8.2ch.net/test/read.cgi/php/1059401269/ ==ASP== Part 2 pc2.2ch.net/php/kako/1028/10280/1028024916.html ==ASP== pc.2ch.net/php/kako/984/984840107.html
111 名前:nobodyさん mailto:sage [2005/09/12(月) 17:28:02 ID:???] >>110 よく読め www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/vsfctarray.asp
112 名前:nobodyさん mailto:sage [2005/09/12(月) 21:57:37 ID:???] >>110 そんな可変長配列の扱いはVBScriptには無い。 つーかそのサンプルがどんな意味なのか分からんが Dim A() B = Split(hoge, ",") ReDim A(Ubound(B)) For nCnt=0 To UBound(B) Step 1 A(nCnt) = B(nCnt) Next やるならこんな感じだろうな
113 名前:nobodyさん mailto:sage [2005/09/13(火) 00:45:26 ID:???] この例をもっと短くするなら Dim A, B B = Split(hoge, ",") A = B ですむな。
114 名前:nobodyさん mailto:sage [2005/09/15(木) 11:36:56 ID:???] テキストエリアに入力された文字について、 前後に改行コードが入っていた場合はTrimで取り除けると思ってたんだけど、 除かれるのは、空白とかだけ。 文字列前後の改行コードだけを取り除きたい時は どうすればいいのでしょうか?
115 名前:nobodyさん mailto:sage [2005/09/15(木) 11:41:21 ID:???] strWriteData = Replace( strWriteData, vbCrLf, "" ) strWriteData = Replace( strWriteData, vbCr, "" ) strWriteData = Replace( strWriteData, vbLf, "" )
116 名前:nobodyさん mailto:sage [2005/09/15(木) 11:45:02 ID:???] >>115 こうすると、文中の改行コードも全てなくなってしまうのでは?
117 名前:nobodyさん mailto:sage [2005/09/15(木) 20:37:02 ID:???] >>115 細かいけどそれをやりたきゃvbNewLineで置換すればOKだぞ そして>>116 の言うとおり。 正規表現を使えばよかろう。 Set regEx = New RegExp regEx.Pattern = "(^\s*)|(\s*$)" regEx.Global = True strWriteData = regEx.replace( strWriteData , "")
118 名前:nobodyさん [2005/09/16(金) 11:05:43 ID:fPKBboZa] 済みません、教えて下さい。 PDFファイルを生成するミドルウェアはなにがおすすめでしょうか。 ・主にレコードセットから生成 ・画像挿入 ・ページ数制御 ・ASP.NETに移行の可能性有り これくらいの事しかやりませんので、 あまり多機能すぎて開発工数がかかりすぎるより、 多少、機能を削っても工数のかからないものがいいです。 予算は50万円くらいです。 (ユーザーを説得できるだけの機能があれば100万くらいまで可) ASP IIS 6.0 IE 6.0 よろしくお願いします。
119 名前:nobodyさん mailto:sage [2005/09/16(金) 20:35:57 ID:???] 「工数かからないように」の一要素であるノウハウの多さという意味で言うと PDFlibあたりがいいんじゃない?
120 名前:nobodyさん mailto:sage [2005/09/28(水) 14:02:13 ID:???] ASPで構造体は使えますか? 使えない場合、何か代替でよい手法がありますか?
121 名前:nobodyさん mailto:sage [2005/09/28(水) 22:04:29 ID:???] >>120 VBScriptにもJScriptにも構造体はありません。 代替はプロパティだけのクラス。 クラス定義が、 class clstest public prop1,prop2,prop3 end class こんな感じで、このクラスを返す関数が function getTest(arg1,arg2,arg3) Dim obj set obj = new clstest with obj .prop1 = arg1 .prop2 = arg2 .prop3 = arg3 end with set getTest = obj end function こんな感じ。 set retvalue = getTest ("val1","val2","val3") とすれば Response.Write retvalue.prop1 で"val1"が出る。
122 名前:nobodyさん mailto:sage [2005/09/28(水) 22:23:19 ID:???] >>120 JScriptの場合はここを参照 www.imasy.or.jp/~hir/hir/tech/js_tips.html#asp_capsulate
123 名前:nobodyさん mailto:sage [2005/09/29(木) 07:56:05 ID:???] 動的にプロパティの追加が出来るのはtypo耐性が低くてイカン
124 名前:nobodyさん mailto:sage [2005/09/29(木) 18:20:52 ID:???] >>123 そこでUnitTestですよ。
125 名前:nobodyさん mailto:sage [2005/10/04(火) 23:10:08 ID:???] ASPのサーバ側の処理を排他制御する場合はApplication変数ででも出来るけど 並列してWSHでも定期的に行うようにするため、 代わりにFileSystemObjectでのファイル書き込みオープンでロック制御を試してみた。 <HTML><BODY><% set fso = createObject("Scripting.FileSystemObject") set basp = createObject("Basp21") Response.Write time & " " : Response.Flush set olock = fso.openTextFile("c:\work\lockfile",2,true) Response.Write time & " " : Response.Flush basp.sleep 5 Response.Write time & " " : Response.Flush olock.close %></BODY></HTML> 二つの画面で動かして [17:00:00 17:00:00 17:00:05]みたいな感じとファイルオープン失敗でaspエラーになる事を期待したら [17:00:00 17:00:00 17:00:05]と[17:00:05 17:00:05 17:00:10]となった。 ファイルオープンを待って[17:00:00 17:00:00 17:00:05][17:00:02 17:00:05 17:00:10]ならまだ分かるが なぜ二番目のアクセスで最初の一発目も実行されないで待ってるんだろう? ロックとしては結果オーライではあるんだけど、何か不思議。 何かこれに関係しそうなドキュメントとかあったらURLキボン。
126 名前:125 [2005/10/05(水) 20:57:09 ID:QIcIBhGo] 質問age忘れた
127 名前:nobodyさん mailto:sage [2005/10/05(水) 22:43:21 ID:???] >>125 ヒント: 遅延書き込み
128 名前:nobodyさん mailto:sage [2005/10/06(木) 23:16:49 ID:???] >>127 遅延書き込みは関係ない気がする… むしろ実行時にスクリプトを先読みしてる? あそっか、ASPとかのスクリプトエンジンって 実行時にコンパイルしてんだよな(後の方の構文エラーとかも先に出るし)。 この場合ファイル名がリテラルだから…。 なるほどな。結構色々気を回してくれるんだなASP。
129 名前:nobodyさん [2005/10/07(金) 18:51:33 ID:2Dl5nVCp] 質問させてください IIS(4.0)+ASP → ODBC → PostgreSQL でADO接続しているのですが .Close & Nothing 作業を行っても Netstatで確認すると 数十秒コネクションが残ってしまいます。 ASPからDB接続するとデフォルトで コネクションプールみたいな機能が 付いてたりするのですか? (ODBCの接続プールは使用していません) 因みにVBScriptで作ってます。
130 名前:nobodyさん mailto:sage [2005/10/07(金) 23:08:04 ID:??? BE:36756623-##] >>129 ASPに関わらず、netstatでみると殆どのアプリが数十秒コネクション残るよ
131 名前:nobodyさん [2005/10/08(土) 01:00:06 ID:6j6nfXjs] まじっすか!! 実は2000人ほどログインするASPプログラムを 作成する予定なのですが コネクションが数十秒残るとPostgreSQLでコネクション 限界に達してしまうんですよね… 接続プールやコネクションプールサーバを使用すれば 実現できるのでしょうか… (もしくはロードバランサーで2台接続?) みんなどうやってDB接続してるんだろう 情報(人-)謝謝(-人)謝謝です
132 名前:nobodyさん mailto:sage [2005/10/08(土) 02:12:07 ID:???] >>131 DB側のコネクションとネットワーク層のコネクションは別な話だと思うが
133 名前:nobodyさん mailto:sage [2005/10/08(土) 11:04:49 ID:???] >>131 ブラウザ→IIS間のセッションが増えても その複数セッションに対して一つのコネクションを使いまわす事で IIS→DB間のコネクション量が膨大にならないようにする それがDBのコネクションプール
134 名前:nobodyさん mailto:sage [2005/10/08(土) 11:14:57 ID:???] いいや違うね
135 名前:nobodyさん mailto:sage [2005/10/08(土) 13:05:50 ID:???] 端末〜Webサーバが同時に2000アクセスしても Webサーバ〜DBへは同時に2000アクセスするわけではない。 下手すれば並列実行できずに待ち行列だよ
136 名前:nobodyさん mailto:sage [2005/10/08(土) 19:27:47 ID:???] 新規DB接続を生成するオーバーヘッドを減らす意味もあるでよ
137 名前:nobodyさん [2005/10/09(日) 03:12:32 ID:/MEb5o0Y] DBソフト(PostgreSQL)の接続状況を見てみたのですが やはりnetstatの接続内容と同じ内容になっていました。 netstat上でもClose後にESTABLISHのまま数十秒 コネクションを維持しています。 Close後にnetstatで見る情報がTIME_WAITEになっていたら 私も気にしなかったのですが… ASPにてDBオープン ↓ netstat上にDB接続コネクションがESTABLISHで発生する PostgreSQL上でコネクションが確立する ↓ ASPにてDBをクローズ netstat上にDB接続コネクションがTIME_WAITEになる PostgreSQL上のコネクションは開放される ↓ 数十秒後にnetstatからコネクション情報が削除される が私の考える流れなんですが… あってますか? 因みにASP上のDB解放作業って Close & Nothing 以外ないですよね? 質問ばっかりですみません
138 名前:nobodyさん mailto:sage [2005/10/09(日) 11:12:59 ID:???] なんでそんなに接続を切りたいの? 複数リクエストに対して一つの接続が 使い回せてればそれでいいじゃん。 いちいち接続を切断するのは逆にオーバーヘッドが増えるって。
139 名前:nobodyさん mailto:sage [2005/10/09(日) 12:04:16 ID:???] >137 コネクションプーリングじゃないの?
140 名前:nobodyさん mailto:sage [2005/10/09(日) 13:48:51 ID:???] >>137 ちなみにPowergesとは何を使って接続してるの?
141 名前:nobodyさん mailto:sage [2005/10/09(日) 20:46:04 ID:???] >140 >129が>137の最初のレスのよーだがそこに書いてある ODBC経由のADO接続らすぃ
142 名前:nobodyさん [2005/10/09(日) 23:02:23 ID:MkiNfj/O] 137です。 ASP側でDBをCloseさせた後数十秒間 DB側のコネクションが持続するのが正常な処理であれば 私も問題ないと思うのですが、 コネクションプーリングしていない状況で上記問題が 発生しているためどういう事なんだろうかと頭を悩ませているところであります。 現在 @そもそもそういう仕様なのか? AODBCの接続プール以外にコネクションプーリングする機能がデフォルトで 存在するのか? BASP、サーバ設定等で開放するための処理が漏れているのか? で色々調べているところです。 ASP以外の問題であれば板違いなのですが @ASPのDB開放処理はClose & Nothing 以外することはない? AASPのDB接続にて同じような現象に陥った経験はありませんか? ということを聞きたいです。
143 名前:nobodyさん mailto:sage [2005/10/09(日) 23:16:16 ID:???] >>142 > @ASPのDB開放処理はClose & Nothing 以外することはない? ない、、、というかこれ以上何かする方法もない あとIIS4.0ってのはどうにかできないの? っていうか、複数の端末から同時にIISにアクセスするとして、 IISって並列にDBにアクセスできるんだっけ??
144 名前:nobodyさん [2005/10/09(日) 23:43:28 ID:MkiNfj/O] 皆様ご回答ありがとうございます! たまたま手元にあったIISが4.0だったというだけだったのですが なるほど…IISという可能性もあるかもしれないですね IISに関してはまだ調べていないんでなんとも言えませんが 少なくともASPのソース自体に問題が無いという事で 要因の一つが消えて安心しました。
145 名前:nobodyさん mailto:sage [2005/10/10(月) 00:37:37 ID:???] >AODBCの接続プール以外にコネクションプーリングする機能がデフォルトで 存在するのか? 存在します。 www.microsoft.com/japan/msdn/dataaccess/mdac/pooling2.asp の図を見ればODBCの他に その前のOLEDBにResource Poolingがあるのが一目瞭然だと思います。
146 名前:nobodyさん mailto:sage [2005/10/10(月) 07:25:23 ID:???] >>IISって並列にDBにアクセスできるんだっけ?? できます。 IISプロセスは当たり前にマルチスレッドなので その各スレッドからのDBへのアクセスは並列になりますな。
147 名前:nobodyさん [2005/10/10(月) 21:44:46 ID:47556GXn] Resource Poolingというのをはじめて知りました。 Microsoftのページは見てたつもりだったんですがお恥ずかしい(汗 どうやらADOでMDAC2.1以降を使用している場合 デフォルトで動作するようでこれが原因である可能性が 高い気がしてきました テストしてみます ありがとうございました
148 名前:nobodyさん mailto:sage [2005/10/23(日) 20:30:47 ID:???] <input type = file>で参照したcsvファイルで work_Aというテーブルに書き込めるようなプログラムはどう書けばいいのでしょうか? 参照するcsvはwork_Aテーブルとカンマで区切られて同一構造になってます。 サーバーはSQLサーバーです。 分かりづらい説明かもしれませんが宜しくお願い致します。
149 名前:nobodyさん mailto:age [2005/10/23(日) 23:46:53 ID:???] Global IP のあるフロントエンドサーバーが ASP で、 LAN にある FreeBSD から text/html なデータをだしたいんだけど、 どういう風にすればいいんですか?便利な proxy とかありますか?
150 名前:nobodyさん mailto:sage [2005/10/24(月) 00:49:30 ID:???] >>148 一旦アップロードしたうえでfsoかadoで普通に読む or ADODB.Streamでアップロードも含めて一括でやる
151 名前:bob [2005/10/24(月) 14:53:50 ID:txJyGq/T] 違うスレでかいたのですがこちらに誘導されましたので 質問させて下さい。 会社でwebデザインをしています。プログラムはASPを使っており 外注しております。そのためASPに興味が出てきたため勉強をしたいのですが なにから勉強したら良いか分かりません。ASP+SQLServerLです。 また良い参考書などがありましたら教えて頂けますか? 宜しくお願いします。
152 名前:nobodyさん mailto:sage [2005/10/24(月) 16:26:50 ID:???] ttp://tryasp.winscom.co.jp/
153 名前:nobodyさん mailto:sage [2005/10/24(月) 20:34:52 ID:???] >>149 FreeBSDのマシンで普通にWebサーバ動かしておいて フロントエンドサーバからXMLHTTPとか使ってFreeBSDサーバからデータを取って そのままクライアント送り出すとかが安直でいいのでは。 >>151 ttp://www.gihyo.co.jp/books/syoseki.php/4-7741-1331-X これ結構おすすめ。
154 名前:nobodyさん mailto:sage [2005/10/24(月) 22:19:47 ID:???] ASPを勉強中なのですが、サンプルでわからないところがあるので教えていただけないでしょうか? <% sCoString = "DBQ=" & Server.MapPath("./sample.mdb") & ";" sCoString = sCoString & "DefaultDir=" & Server.MapPath("./") & ";" sCoString = sCoString & "Driver={Microsoft Access Driver (*.mdb)};DriverId=25;" Set cn = Server.CreateObject("ADODB.Connection") cn.Open sCoString sSQL = "INSERT INTO tablename SELECT * FROM [TEXT;DATABASE=C:\mdb].[test.csv]" Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sSQL, cn, 3, 3, 1 set rs = nothing set cn = nothing %> とあるのですが、下のほうに rs.Open sSQL, cn, 3, 3, 1 とあるのですが、 この3,3,1という数字は何なんでしょうか? どうぞよろしくいお願い致します。
155 名前:nobodyさん mailto:sage [2005/10/24(月) 23:02:13 ID:???] カーソルモードを定数化もしていないようなそんなウンコなサンプルは捨ててしまえ!
156 名前:nobodyさん mailto:sage [2005/10/24(月) 23:32:16 ID:???] >>154 静的カーソル ReadOnly コマンドテキスト
157 名前:nobodyさん mailto:sage [2005/10/24(月) 23:33:11 ID:???] >>153 俺もそのテキスト気に入ってる
158 名前:nobodyさん mailto:sage [2005/10/24(月) 23:44:59 ID:???] >>154 ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpado260/htm/mdmthrstopen.asp
159 名前:nobodyさん mailto:sage [2005/10/26(水) 01:22:49 ID:???] 複数行入力できるフォームを作り、入力された文中にある特定の行と列の数値で計算を行いたいのですが、 どのような考え方やプログラムを行えばいいでしょうか? 入力する文は数値以外は固定です 例)-------------------------------------- ************************** 100 *********** 200 ****** ****300 ****400 ****************500 -----------------------------------------
160 名前:nobodyさん mailto:sage [2005/10/26(水) 01:43:44 ID:???] >159 正規表現。 それがイヤなら数値の前後の文字列をInStrとかで検索して 場所を特定してからMidなどで数値だけ抽出。 (関数名はVBScriptの場合)
161 名前:nobodyさん mailto:sage [2005/10/26(水) 20:54:07 ID:???] >>159 数字以外が固定なら数字のところだけinput type=textにした方がいいんじゃないか… 余計なお世話だが、一度そういう無理をしてしまうと 後々になって全角も認識するようにしろとか 「3千」とかも読み取れるようにしろとか だけど「八千代商事」とかはスルーしろとか だんだん要求がアホらしくなっていったりしていくんじゃないかと心配してしまふ
162 名前:nobodyさん mailto:sage [2005/10/26(水) 20:58:37 ID:???] >>161 ime-mode:disabled と javascript で isNaN かけるとモアベター
163 名前:nobodyさん mailto:sage [2005/10/27(木) 00:32:40 ID:???] 今、会社でASPの勉強をしているのですが、COMをかなり利用していて全然理解できません。 クラス化とかさっぱりわからないのですが、なにかいい参考書やHPはないでしょうか? よろしくお願い致します。
164 名前:nobodyさん mailto:sage [2005/10/27(木) 00:38:09 ID:???] >>163 きついようだけど、レガシASP程度で全然理解できないとなると、、、、 多分、ASPの日本語の参考書って10〜20冊くらいしか出てないから 本屋で好きなのを買った方がいい。
165 名前:nobodyさん mailto:sage [2005/10/27(木) 02:38:55 ID:???] >>160 ありがとうございます。何とかInStrやMidなどを使い数値を抽出することができました 本で正規表現を読みましたが、短期間ではちょっと理解ができませんでした・・・ >>161 もともと別データから抽出したデータ中の必要な数値データを計算するだけなので問題ありません 心配ありがとうございます
166 名前:nobodyさん mailto:sage [2005/10/27(木) 08:01:10 ID:???] >>163 いやでも自作COMコンポーネントをたくさん使ってると 後から予備知識無しだと全然読めないよね…
167 名前:nobodyさん mailto:sage [2005/10/28(金) 22:10:00 ID:???] >>166 自作COMコンポーネントだったら参考書買っても無理だろ
168 名前:nobodyさん mailto:sage [2005/10/30(日) 01:43:33 ID:???] ASPで翻訳サイトなどにあるクリックすると枠内にあるテキストが消えることってできるんでしょうか? ソースを貼り付けて実行しようとしてもエラーが出てしまいます。
169 名前:nobodyさん mailto:sage [2005/10/30(日) 01:47:13 ID:???] >>168 クリックするとテキストボックスが消えるってのはJavaScriptではないのか?
170 名前:nobodyさん mailto:sage [2005/10/30(日) 02:50:12 ID:???] InterDevでASPの勉強してるんですが、 デバックって皆さんどうやってるんでしょうか? ASP.NETみたいにブレークポイント作っても止まってくれませんよね? イベントドリブンじゃあないから当たり前なのでしょうか? 今は、logファイルに変数を出力してやってますが、ほかになにかないんでしょうか?
171 名前:nobodyさん mailto:sage [2005/10/30(日) 03:48:29 ID:???] >>170 Microsoft Script Debugger の最新版でできる。 俺は使わないけど。
172 名前:nobodyさん mailto:sage [2005/10/30(日) 20:29:07 ID:???] アンケート画面をつくりたいのですが、 項目の1つに選択項目が7,8個ありまして、 それを1位から再下位まで順番をつけてもらいたい項目があるのですが、 どんな形で実現すればよろしいでしょうか? アドバイスお願い致します。
173 名前:nobodyさん mailto:sage [2005/10/30(日) 21:16:35 ID:???] >>170 Response.Write "<HR>" & 変数 & "<HR>" Response.flush とかを途中にぶち込むと画面は乱れるが大体どうなってるのか分かる ログファイルに書き出すより、画面の描画の進度と見比べられるので俺は好み。 >>172 Javascriptのテクニックになるのでスレ違いだな
174 名前:nobodyさん mailto:sage [2005/10/30(日) 23:39:29 ID:???] なんか、クライアントサイドとサーバサイドの区別も付かないヤツが多いな。 とりあえずJavaScriptくらい極めればいいのに。 そうすればJScriptでASP組めるし。
175 名前:nobodyさん mailto:sage [2005/10/31(月) 02:33:29 ID:???] >172 テキストフィールドを1つ用意してカンマ区切りで入力してもらえば?
176 名前:nobodyさん mailto:sage [2005/11/01(火) 18:17:13 ID:???] すみませんがスレ違いかもしれませんが教えてください Server2000から2003に移行をしているものです。 IIS5.0では上手くいってなのですがIIS6.0にした途端 Session変数(関数?)がページ間で上手くわたらないのですが なにかIIS6.0の設定が必要なのでしょうか? クッキーもページ間で値渡しができなくてこまっています。 (クッキー自体はもしかしたら登録すらできてなかも・・・。) いろいろ調べたのですが、なかなか出来なくて困っています もしよろしかったら教えてください。 IIS5.0 プロセス分離モード ってやつもやってみましたがダメでした
177 名前:nobodyさん [2005/11/01(火) 18:19:52 ID:olXap06e] >>176 ageときますスミマセン おなじ事をサーバーで行なうと上手くいきます。クライアント側がさっぱりなのです
178 名前:nobodyさん mailto:sage [2005/11/01(火) 20:50:26 ID:???] >>176 クライアントのセキュリティ設定が その2003サーバに対してCookieを拒否するようになってたりせんか
179 名前:nobodyさん mailto:sage [2005/11/01(火) 21:44:58 ID:???] >>176 ローカルだとうまく動くんでしょ? なら >>178 の言うとおりIE側の設定じゃね? 新しいサーバのホストは信頼されてる?
180 名前:176 mailto:sage [2005/11/01(火) 21:44:58 ID:???] >>178 そうかもしれませんが、server2000では何も設定せずにうまくいくのに server2003だとクライアント側を設定しなければならなとなると、導入に問題なのですが・・・。 IISの設定じゃないのですかねぇ??
181 名前:nobodyさん mailto:sage [2005/11/01(火) 21:45:56 ID:???] >>179 ホスト→ホスト名
182 名前:176 mailto:sage [2005/11/01(火) 21:48:44 ID:???] >>181 ホスト名・・・。しらべてみます。うまくいったら報告します。
183 名前:176 mailto:sage [2005/11/01(火) 21:55:48 ID:???] ホスト名 ビンゴ!!。アドレスにコンピューター名を入れていました。 IPアドレスにしたら完璧に動きました。(LAN内ですので) みなさまどうもお騒がせしました。まじ感謝です
184 名前:nobodyさん mailto:sage [2005/11/01(火) 22:40:03 ID:???] お世話になります。 現在、asp上のリンクをクリックするとDBにバイナリデータで格納されているpdfファイルを読み込み、 ブラウザに表示をさせるという処理を行っているのですが、 ブラウザに表示できる端末とダウンロードのダイアログが出てきてしまう端末があります。 色々原因を探っているのですが、 今現在わかっているのはダイアログが表示される端末は 全てAcrobat Reader5.0がインストールされているものだということだけです。 しかし、Acrobat Reader5.0がインストールされていてもブラウザに表示できる端末もありました。 また、Acrobat Readerの設定(ブラウザで表示するかどうかの設定)が悪いのかと思いましたが、 pdfファイルをブラウザに放り込んでやるとちゃんとブラウザ上で表示されていました。 さらに、正常に表示できる端末では、 右クリック→対象をファイルに保存 としてやると正常にpdfを保存することが出来ますが、 ダイアログが表示される端末では 対象のファイルがありません のようなエラーメッセージが表示されてしまいます。 ちなみに、現在他のシステムも稼動していますので、 環境を変化させないために全ての端末にAcrobat Readerの最新版をインストールするということは出来ません。 現在わかっていることはこのぐらいなのですが、 ダイアログが表示されてしまう原因は何なのでしょうか? また、上記で「ブラウザ」と表記しているものは全てIE5.5以上です。
185 名前:nobodyさん [2005/11/02(水) 04:34:36 ID:8yGkDJEQ] ASPからWMIを使用し、JScriptで記述した場合の問題に直面しています。 あるフォルダの所有者を取得したいのですが、 VBScriptで以下の用に記述した場合は問題なく動作します。 <% strFolderName = "C:\\Sample" Set objWMIService = GetObject("winmgmts:") Set objFolderSecuritySettings = objWMIService.Get("Win32_LogicalFileSecuritySetting='" & strFolderName & "'") Dim objSD intRetVal = objFolderSecuritySettings.GetSecurityDescriptor(objSD) If intRetVal = 0 Then Response.Write( "Ownerは[" & objSD.Owner.Name & "]" ) Else Response.Write( "Couldn't retrieve security descriptor." ) End If On Error Resume Next %>
186 名前:nobodyさん [2005/11/02(水) 04:35:05 ID:8yGkDJEQ] しかし、JScript版で以下の用に記述した場合、 'Owner' は Null またはオブジェクトではありません。 と表示されます <% var strFile = "C:\\Sample"; var objWMIService = GetObject("winmgmts:"); var objFolderSecuritySettings = objWMIService.Get("Win32_LogicalFileSecuritySetting='" + strFile + "'"); var objSD; varintRetVal = objFolderSecuritySettings.GetSecurityDescriptor(objSD); if ( intRetVal == 0 ) { Response.Write( "Ownerは[" + objSD.Owner.Name + "]" ); } else { Response.Write( "Couldn't retrieve security descriptor." ); } %> JScriptで記述した場合、何故objSDはundefinedになってしまうのでしょうか? どなたかこの現象の原因のわかる方どうか解決方法のご指示をお願いします。 m(__)m
187 名前:nobodyさん mailto:sage [2005/11/02(水) 09:07:57 ID:???] >>186 > var objSD; JScriptの場合、これだけでは定義したとはいえない。 この状態で objSD の値は null 兼 undefined
188 名前:nobodyさん mailto:sage [2005/11/02(水) 09:10:34 ID:???] >>184 Response.ContentType を明示的に宣言してる?
189 名前:186 [2005/11/02(水) 09:56:01 ID:8yGkDJEQ] >>187 レスありがとうございます。 自分ではGetSecurityDescriptor()にobjSDを渡せば、 内部でobjSDに対して何某かのインスタンスが生成されて 情報がセットされ戻ってくると思い込んでいたのですが、 それはつまりGetSecurityDescriptor()に渡す前に、 既に何某かの型でインスタンスを生成してobjSDに参照させていないのが 今回の原因ということでしょうか??
190 名前:nobodyさん mailto:sage [2005/11/02(水) 19:01:42 ID:???] >>184 ブラウザのキャッシュを空にしたりすると動きが変わるかも知れない それを差し引いてもAcrobatReaderの設定は揮発するから微妙なところだな んで他のシステムではAcrobatReaderを何に使ってる? 他の同様のシステムではPDFがブラウザでちゃんと表示できてるのであれば >>188 氏の言うとおり、ContentTypeでapplication/pdfを明示的に指定することで うまく行くようになるかも知れないと思われ
191 名前:nobodyさん mailto:sage [2005/11/02(水) 20:33:25 ID:???] >>186 JScriptには参照渡しが無いからそういうメソッドは使えねえべ
192 名前:nobodyさん mailto:sage [2005/11/02(水) 22:59:56 ID:???] >>189 >>191 氏も言っているがJScriptにおける代入は "=" のみ。 関数の引数は全て読み込みのみになる。つまり値渡しか使えない。 関数の中で引数の値を変更しても、外には出れない。
193 名前:184 [2005/11/02(水) 23:46:26 ID:jsGUnMcJ] >>188 >>190 どうもありがとうございます >>Response.ContentType Response.ContentTypeはapplication/pdfを指定しています。 >>キャッシュ IEのインターネットオプションでキャッシュを削除してみたところ、 1台のみpdfが表示できるようになりました。 しかし、表示できるのは初回のみで、 2回目以降は表示できませんでした。 また、no-cacheの指定もしてみたのですが、 この指定をしてしまうと初回時に表示することが出来なくなってしまいました。 (Microsoftのサポートページにキャッシュを制限する指定をすると ダウンロードダイアログが表示されてしまうという既知の問題が載っていましたので、 おそらくこれが原因だと思われます。) また、他のシステムで実際にpdfが使用されているのかはよくわからないそうです。 しかし、やはり環境を変えたくないという事と、 端末は各店舗にあり、使用しているのはパソコンの素人であることから Acrobat Readerのアップグレードはしたくないそうです。 長くなりましたので2つに分けます。
194 名前:193続き [2005/11/02(水) 23:47:30 ID:jsGUnMcJ] 以上のことにより、代替案を考えてみました。 DBからバイナリデータを読み込み、一時ファイルとしてサーバーに書き出す。 そのファイルに対してリダイレクトを行う。 というものなのですが、この案にも問題があります。 1.ASPには標準ではバイナリデータの書き出しが出来ないので、どのようにして一時ファイルを書き出すのか。 2.pdfには個人情報が含まれているので速やかにファイルの削除をしたいが、 pdfの読み込み終了を待ってからファイルの削除をすることが出来るのか。 の2点です。 1に関しては、ADODB.Streamというものがあるそうですが、 現在ではセキュリティの問題上、IEでは使用することが出来ないそうなのです。 色々調べてみたところ、BASP21というものが存在し、 それを使用すれば書き出すことが出来るそうなんですが、 現在自宅に居るため確認が取れない状態です。 2に関しては、1日に一回バッチを走らせてファイルを削除することを考えていますが、 24時間という時間が「速やか」かと言われると問題があると思います。 >>184 の内容、もしくは今回の代替案に関して こうしたらいいのではないかという意見がありましたら教えていただけないでしょうか?
195 名前:nobodyさん mailto:sage [2005/11/03(木) 11:31:14 ID:???] >現在ではセキュリティの問題上、IEでは使用することが出来ないそうなのです。 その書き出しはサーバ内で行われるものでしょ? IE関係ない。ADODB.Streamで普通に出来る。 >2.pdfには個人情報が含まれているので速やかにファイルの削除をしたいが、 >pdfの読み込み終了を待ってからファイルの削除をすることが出来るのか。 普通に考えると出来ないね。 他の方法を考えた方が良さそうだな。 あとはダメ元でcontent-disposition:attachmentとかを使ってみると 関係無さそうだけどまた状況が変わるかも… つかそれ以前にその状況って、pdf直リンクならちゃんと開けるのか? Content-typeをちゃんと設定してバイナリ吐くんだったら クライアント側に流れるパケットはpdf直リンクとほぼ同じになるはずなのだが? 直リンクでちゃんと開けるのであったら…本気で解決したいなら etherealとかでpdf直リンクの場合とバイナリ出力aspの場合の それぞれのレスポンスヘッダをキャプチャして違いを見てみて、 違いがあったらバイナリ出力aspにヘッダを追加する。 それが一番手っ取り早い。
196 名前:nobodyさん mailto:sage [2005/11/03(木) 11:35:02 ID:???] >>194 AcrobatReader5 のブラウザ内表示は悲惨なんだよ。 「Web表示用に最適化」がONになってるPDFをブラウザ表示させるとページが落丁したりする。 Adobeのサポートページに色んな情報があるから見てきな。
197 名前:nobodyさん mailto:sage [2005/11/03(木) 11:37:29 ID:???] >>193 PDFのブラウザ表示はクライアント側の設定に依存するから サーバ側でどんなにやったって無理なものは無理だよ。
198 名前:186 [2005/11/03(木) 20:35:58 ID:KtvlL72l] >>191 ,192 レスありがとうございます。 そしてJScriptに参照渡しが無いことを始めて知りました...orz 当たり前に存在するものだと...orz するとJScriptではGetSecurityDescriptor(引数)に値する処理は、 行えないのでしょうか? それともまったく別の記述方法でならDACLに値するものを取得することは 可能なのでしょうか?
199 名前:184 mailto:sage [2005/11/06(日) 23:28:23 ID:???] レスが遅くなってしまって申し訳ありませんでした。 皆さん色々なアドバイスどうもありがとうございました。 SEと相談し、結局SEが何かしら対策を考えるから今のまま作っていくことになりました。 色々アドバイスを頂いたのにもかかわらずこんな結果になってしまいましたが、 とりあえずはこのまま作っていきます。 本当にどうもありがとうございました。
200 名前:nobodyさん mailto:sage [2005/11/07(月) 20:19:05 ID:???] >>199 いや、元々システムの設計としては間違ってないんだよ。 AcrobatReader 5.0の動き、ひいては そんな微妙な動きをする時代遅れの古いバージョンを使い続ける…というのが良くない。 IEやOSのバージョンが上がってるんだからプラグインもバージョン上げていかないとねえ。 まぁガンガレ
201 名前:nobodyさん [2005/11/10(木) 16:34:58 ID:l71/uwis] ASP.NETを使い始めたばかりで、今試行錯誤しながらテストしているのですが、HPを作る際に 画像を貼り付けたのですが、ftpでweb上にアップロードし、確認しようとしてみてみると 画像やコンボボックス等のオブジェクト類が一切表示されていません ツールボックスのWEBフォームからオブジェクトを持ってきたのですが、HTMLのオブジェクトだと 表示されるようです。 .netによるデバック時は表示されているのですが、 web上だと表示されないのは何かが 足りないからかと思うのですが、わかりません。 漠然としていて申し訳ないですが、「これがないとダメポ」というのはありますか? XMLファイルが無いのですが、これって関係ありますか?
202 名前:nobodyさん mailto:sage [2005/11/10(木) 18:10:20 ID:???] 【質問】ASP.NETスレ Part2【議論】 pc8.2ch.net/test/read.cgi/php/1111480331/
203 名前:201 mailto:sage [2005/11/10(木) 19:15:00 ID:???] ありがとう。そっちに逝ってきます
204 名前:668 [2005/11/11(金) 11:39:15 ID:CsKh1TLX] リストボックス内のすべての値をRequest.Formにて取得したいのですが、 現状セレクトされている値しか取得できません。 どうすれば、取得することができるのでしょうか?
205 名前:nobodyさん mailto:sage [2005/11/11(金) 19:54:32 ID:???] >>204 Javascriptのテクニックになるのでスレ違いだが submitする直前にselect のmultiselectをonにして 全optionをselectedにしてからsubmitすればいい。
206 名前:668 [2005/11/13(日) 11:23:37 ID:GnU/8u4f] >>205 ありがとうございます。 やっとできました。
207 名前:nobodyさん mailto:sage [2005/11/17(木) 16:29:44 ID:???] 以下のbatファイルをASP化しようと思っています。 cmd /c net user vaio > I:\temp\test.txt VBS化のソース↓ Dim WshShell Dim rtnCode Const SW_HIDE = 0 Set WshShell = CreateObject("Wscript.Shell") rtnCode = WshShell.Run("cmd /c net user vaio > I:\temp\test.txt", SW_HIDE, True) If rtnCode <> 0 Then Error rtnCode というVBSは成功しました。 でもここからASPにできません。方法ってないですか?
208 名前:nobodyさん mailto:sage [2005/11/17(木) 19:58:09 ID:???] <%@ Language=VBScript %> <html> <head> </head> <body> <% ' 処理がとまってしまう ' DOSコマンドでも同様 Dim WSHShell Set WSHShell = Server.CreateObject("WScript.Shell") WSHShell.Run "notepad.exe", 3, false 'メモ帳を起動します。 ' Microsoft VBScript 実行時エラー (0x800A01A8)<BR>オブジェクトがありません。: ''<BR> 'Dim WSHShell 'Set WSHShell = WScript.CreateObject("WScript.Shell") 'WSHShell.Run "notepad.exe" 'メモ帳を起動します。 ' Microsoft VBScript 実行時エラー (0x800A0046) 書き込みできません。: 'MsgBox'になる ' MsgBox "メモ帳を起動しました。" %> </body> </html>
209 名前:208 mailto:sage [2005/11/17(木) 19:58:44 ID:???] 考えられる原因は?
210 名前:nobodyさん mailto:sage [2005/11/17(木) 20:30:17 ID:???] >>209 の書き方がちょっとカチンとくるがヒントを出してやるか >>207-208 ともに ASPのスクリプトがサーバ内でどういう権限で動作するかって所を考えよう >>207 はWMIを使うという選択肢もあるかも。 >>208 は…そのページにアクセスするとサーバでメモ帳を立ち上げたいのか? 意味が分からん。
211 名前:208 mailto:sage [2005/11/17(木) 20:41:09 ID:???] >>210 ありがとうっございます。 サーバ処理の概念がいまいちわかってないかもしれません。 WMIを検索して勉強してみます。