トップページphp
986コメント449KB

【質問】ASP.NETスレ Part4【議論】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/07/17(火) 23:49:46ID:pyJr9yIy
●過去ログ
Part1 - 【質問】 ASP.NETスレ 【議論】
http://pc5.2ch.net/php/kako/1040/10406/1040698263.html

【質問】ASP.NETスレ Part2【議論】
http://pc8.2ch.net/test/read.cgi/php/1111480331/

【質問】ASP.NETスレ Part3【議論】
http://pc11.2ch.net/test/read.cgi/php/1160355849/
0627nobodyさん2008/06/20(金) 17:08:53ID:???
>>626
そうなんですか、勝手にmdbファイルでも作成されると誤解してました。
ありがとうございました。
0628nobodyさん2008/06/22(日) 13:06:38ID:???
<俺用メモ>
ICallbackEventHandlerの使い方
・指定のメソッドを実装する
・テーブルにSELECTかけてDataSetに読み込んだ後、
 return DataSet.getXMLで文字列をJScriptに返してから、
 new ActiveXObject("MSXML2.DOMDocument");で
 resultを読み込んでやればおk
・ボタン押下なんかのイベントにしこむと
 押下時に画面更新が発生する件は
 Me.Button1.Attributes.Add("onclick", callbackRef & ";return false;")
 と、return false;を追加してやればおk

VB側からJScriptを呼び出すのは、無理っぽい。
</俺用メモ>
0629nobodyさん2008/06/22(日) 16:39:00ID:???
畜生!俺がバカなだけだがMS死ね!何が__pendingCallbacksだ!
ソリューション見ても意味が全然わからねぇ、MS死ね!
0630nobodyさん2008/06/22(日) 17:23:20ID:???
VBが既に時代遅れなのです
0631nobodyさん2008/06/22(日) 17:53:57ID:???
フォームのテキストボックスに入力した値をDBに登録する、って処理をするときにHTMLエンコードとかした方がいいものですか?
必要ならしなかった場合にどんな危険性があるでしょうか?
0632nobodyさん2008/06/22(日) 18:01:30ID:???
>>631
クロスサイトスクリプティングの危険があるんじゃなかったっけ。
ユーザ入力のはしつこいぐらいチェックしたほうがいいよ
0633nobodyさん2008/06/22(日) 19:37:14ID:???
>>631
チェック不要で何でも突っ込んでOKな仕様なら不要だろ。
入力値のクリーニングが少しでも必要との認識があるなら、
>>632の対応で良いとオモ。


0634nobodyさん2008/06/22(日) 21:49:19ID:???
>>631
DB格納時にわざわざHTMLエンコードした文字入れるのは止めましょう。
実際のHTML生成時に必ずHTMLエンコードするようにしてください。

中途半端にならずに納得できるまで調べると理由も理解できるかと。
0635nobodyさん2008/06/23(月) 11:10:40ID:???
VS2008です
実行後の画面に差異が生じます。

1.デザイン画面ではCSSが適用された見た目になります。
2.デバッグ実行のブラウザではCSSが適用されない見た目になります。
3.ブラウザでIISを通してみるとCSSが適用された見た目になります。

デバッグ実行(仮想サーバ?)ではCSSは適用されないのでしょうか?

aspxファイル、cssファイルは同一のディレクトリにあり、パスの間違いではなさそうです。
06366352008/06/23(月) 15:15:53ID:???
特徴としてマスターページを使用しています。
0637nobodyさん2008/06/23(月) 15:49:01ID:???
>>635
デバッグ環境での実行時だけ、
cssまでのパスが辿れないとか
そういうオチなんじゃね?

アドレスバーにcssファイルのパス記述して、
参照できるか確認してみたら?
0638nobodyさん2008/06/23(月) 21:48:45ID:???
フォーム認証で許可してなかったわっとか
06396352008/06/24(火) 08:59:10ID:???
>>637,638
アドレスバーにcssファイルのパスを打ち込んだところ
古いCSSが出てきました。
インターネット一時ファイルをすべて削除したらデバッグでもCSSが適用されました。
ありがとうございました。
0640nobodyさん2008/06/24(火) 14:48:16ID:t/jniRHC
ボタンコントロールに
Attributes.Add( "onclick", "window.open('hogehoge.aspx?id=0&type=test');";
でクライアントスクリプト登録したところクエリ文字列を結ぶ&が&にエンコードされちゃうんですけど
回避可能な方法または別な登録方法はありますでしょうか?

Attributes.Add( "onclick", @"window.open('hogehoge.aspx?id=0&type=test');";
でやってもだめでした。

ASP.NET
Framework2.0
C#

0641nobodyさん2008/06/24(火) 14:49:23ID:???
なんか変になったので全角で書きます。。
>クエリ文字列を結ぶ&が&amp;にエンコードされちゃうんですけど
0642 [―{}@{}@{}-] nobodyさん2008/06/24(火) 16:22:53ID:???
>>640
.OnClientClick
0643nobodyさん2008/06/24(火) 20:46:20ID:???
>>640
何がしたいの?
&amp;を渡したら、&amp;amp;になるってのはさすがに
困るかもしれないが&が&amp;になっても構わないのでは。
06446402008/06/24(火) 21:49:51ID:???
Attributes.Add( "onclick", "window.open('hogehoge.aspx?id=0&type=test');";
で実行するとHTMLに以下の様に展開されてしまいます。

onclick="window.open('hogehoge.aspx?id=0&amp;type=test')"
となってしまいQueryStringの「type」が正しく取得できないのです。。
0645nobodyさん2008/06/24(火) 22:55:44ID:???
Attributes.Addよりも>>642が教えてくれたように
OnClientClickプロパティにJavaScript書く方がスマートだね。

で,ちょっと実験してみたけどAttributes.AddでもOnClientClickでも
確かに&amp;にエンコードされる。
けどどちらにしてもtypeの値は正しく取得できたよ?

以下,テストに使ったコードのサンプル
(インデントは全角スペースに置換したため注意)

protected void Page_Load(object sender, EventArgs e)
  {
    //以下の2行はどっちでも同じHTMLを出力される
    //Button1.Attributes.Add("onclick", "window.open('Default.aspx?id=0&type=test');");
    Button1.OnClientClick = "window.open('Default.aspx?id=0&type=test');";
    
    //GETパラメータの全てのキーと値をタイトルに設定
    foreach (string key in Page.Request.QueryString.Keys)
    {
      Page.Title += ":" + key + "=" + Page.Request.QueryString.Get(key);
    }
  }

ボタン(Button1)一個貼り付けて実行してみればわかるかと。
06466402008/06/24(火) 23:35:47ID:???
ありがとうございます。

>>645さんの動作確認ブラウザはIEでしょうか?
当方でもIE6では&amp;でエンコードされていてもtypeの値は取れました。
ただFirefox2.0ではNull参照例外が発生したため、困惑している次第です。
エンコードされていても取得できるのが正しいのか正しくないのか。。。

p.s.
OnClientClickの件、ご指摘ありがとうございます。
0647nobodyさん2008/06/25(水) 00:08:24ID:???
>>646
Null参照例外?ASP.NET側の?
文字列がURLエンコードされていても、
それをQueryStringとして処理するのはサーバー側だぞ。
普通、ブラウザは関係ない。
もし、変数を代入したりしているなら>>645の通りベタ打ちしてみたら?

ちなみにFirefox2.0、Win2k、ASP.NET2.0、VS2005で
検証してみたがなんのエラーも出ずに正常動作した。
0648nobodyさん2008/06/25(水) 01:55:55ID:???
>>646
エンコードされるのが正しい。わりとそのへんいい加減ではあるが、
エンコードされてない&は、犬に食われて無くなっても文句は言えない。
0649nobodyさん2008/06/25(水) 05:10:01ID:???
いわゆる 標準 だな
0650nobodyさん2008/06/25(水) 21:23:32ID:???
ASPからASP.NET2.0に移行したんですが、ASPより体感で遅くなりました。
ASPならほぼ瞬時に切り替わるページが、.NETだと1〜2秒かかります。
SQL server profilerを見ていると、
DBとのやり取りは比べ物にならないくらい速くなっているので、
レンダリング周りだと思うのですが、そんなものなのでしょうか?
(初回コンパイルで遅いのではなく常にです)

GridViewにバインドする際に整形したいので、
dateFormatter(eval("YYYYMM"))のようなことはやっていて、
ヘルプを読むとevalはパフォーマンスに影響するというのを見ましたが、
原因はこれだけとも思えず…。
というか、eval使わないとなるとRowDataBoundイベントで1セルずつ
整形処理とかおよそ.NETらしくないように思いますし。
0651nobodyさん2008/06/25(水) 22:59:29ID:???
せめて列数とか件数とか、ViewStateが巨大になってないかとか
認証とかどうなってるのかとか、トレースやデバッグ設定どうなってるのとか
VS上かIISかとか
あーだこーだ
0652nobodyさん2008/06/25(水) 23:38:16ID:???
全体的に遅かったので、抽象的な質問になりました。すみません。
特に遅い画面といえば、10列 x 100行程度の一覧画面で
ローカルでの表示でも5秒程度かかります。
※クライアントの意向によりページングは使用していません
 ASPのころは同様の列、行数で切り替わりは1秒程度。

認証はwindowsで偽装はfalseにしています。
本番機でのtrace、debugはもちろんfalseですが、
bufferingはtrueにしています。
サーバースペックはCPUがXeonでメモリ4G程度としか知りません。
ViewStateのサイズは確認していませんでした。
bufferingもtrueにしていることですし、調べてみることにします。
ありがとうございます。
0653nobodyさん2008/06/25(水) 23:53:07ID:???
連投すみません。5秒は言い過ぎでした。多分3秒くらい。
0654nobodyさん2008/06/27(金) 00:30:25ID:???
DataSetの扱いが悪いとか
0655nobodyさん2008/06/27(金) 00:34:39ID:???
とりあえずtrace有効にして怪しいとこがないか見てみたら。
そんなデータ量で何秒とか明らかにおかしいと思う。
06566452008/06/27(金) 22:44:24ID:???
>>646
返事が遅くなってすまん。
こっちで確認したのはIE7とFirefox3でした。

今別の(Firefoxが入っていない)PCにFirefox2をクリーンインストールして
試してみたけどやっぱり正常にtypeの値取れたよ?なにか別の原因かと。

>>647
確認thx
0657nobodyさん2008/06/29(日) 13:39:00ID:u/QaY2OJ
テーブルアダプターを作り
それをaspxのObjectDataSourceコントロールのデータソースの構成から
作ったテーブルアダプターを紐づけたいのですが
ビジネスオブジェクトの選択のコンボボックスの中にも表示されず
プロパティのTypeNameに直接テーブルアダプター名を打ち込んでも
読み込めませんでしたとエラーが出てしまいます。
スペル間違えは確認しましたがそれはなく、迷っています
どなたか解決方法を教えていただきませんか? 宜しくお願いします。
VS2005+VB+Oacle9iです
0658nobodyさん2008/06/29(日) 20:55:10ID:???
DataListを使って一覧表示しています。
文字列を表示するときに、Labelを使うと、文字列の中に改行文字があっても、改行してくれません。
イメージとしては、掲示板の本文みたいな表示しにしたいのですが、
ItemTemplateとしては、何を使うべきなのでしょうか?
0659nobodyさん2008/06/29(日) 22:59:01ID:???
<br>に置換すれば?
0660nobodyさん2008/06/30(月) 23:02:12ID:CMrqWlxQ
webサイトを作ろうとやっているわけなんですが、
アップの後に確認してみたところ、どうしても
Parser Error Message: Could not load the assembly 'App_Web_default.aspx.cdcab7d2'. Make sure that it is compiled before accessing the page.
と出てきてしまい
<%@ page language="C#" autoeventwireup="true" inherits="_Default, App_Web_default.aspx.cdcab7d2" %>
が悪いと出てくるわけなんですが、どうすればいいのか理解ができない状況です・・・

もし、ここが悪いんじゃね?っていうのがあれば教えていただければ幸いです。
0661nobodyさん2008/07/02(水) 06:22:34ID:vJfryalk
ASP.NETこれからはじめようとおもっていて、
色々なサイトを巡り情報を収集しています。
Webアプリ開発人口がWindowsなどのアプリケーション開発者に比べて少ないようで、
多くのサイトで、Webアプリが普通のWindowsアプリケーションと比べて、
+α覚えないといけないので難しいとか、イメージが沸きにくいと書かれていました。
ASP.NETはそのような従来のWindowsアプリなどの開発者に最適で、
同じような感覚でWebアプリが書けるといったことも随所で書かれていました。
私はこれまでにPHPしかやったことがなく、
Windowsのアプリケーションなんてどういうものか想像すらつきません。
最初からWebアプリにしか興味がなく、Webアプリしか作ったことがないような人間には、
ASP.NETは理解しづらいものなのでしょうか?
PHPユーザーのためのASP.NET入門のようなサイトがあったら是非教えてください。
0662nobodyさん2008/07/02(水) 08:50:36ID:???
逆に>>661さんに聞きたいんだけど、なんでASP.NETをやろうと思ったの?
Webアプリ作りたくてPHPを習得済みならPHPでいいんじゃないかと思うけど、
0663nobodyさん2008/07/02(水) 23:10:09ID:???
PHPでafter Railsなフレームワークを使っていたのなら、
むしろASP.NET MVCとかの方が理解しやすいかもね。
06646612008/07/03(木) 01:03:09ID:???
レス遅くなってすみません。

>>662
趣味の延長線です。
より多くのことをやってみたいというだけの理由です。
他の言語(C#)をさわってみたかったというのも理由です。

>>663
フレームワークは使ったことがありません。
正確には昔CakePHPに手をつけましたがどうにも理解できませんでした。
PHPでもオブジェクト指向が中途半端にサポートされていて、
オブジェクト指向的な書き方や、使い方はできるのですが、
独学でやってるもので、オブジェクトとして正しいものがかけているのかは疑問があります。
ASP.NET MVCというのははじめてききました。
そういったものがあるなら、CakePHPをもう一度勉強してみたいと思います。

フレームワークについては全くといっていいほど知らないので、そちらの習得を最優先したいと思います。
0665nobodyさん2008/07/04(金) 23:12:52ID:???
>>664
そういう理由なら、.NETのWindowsアプリに挑戦した方がいいよ。
ASP.NETにいきなり入ると覚えることが多すぎて頓挫しやすい。
.NETには独特の知識が必要だから、まずは.NETそのものに慣れることを勧めたい。
0666nobodyさん2008/07/06(日) 00:33:38ID:???
<%%>で時刻をバインドしたいけどできますか?
0667nobodyさん2008/07/06(日) 01:00:27ID:???
何の時刻を何にだよ
0668nobodyさん2008/07/06(日) 11:36:29ID:???
趣味でプログラムを作っていて、
Windowsアプリなら自分が納得できるレベルのものを作れるようになりました。

そこで、次はASP.NETに挑戦というか、
今まで作ったWindowsアプリを画面だけそのままに
中身の処理はすべてサーバー上に移動ってことをしたいんですけど、

そのために必要な知識を手に入れるためのお勧めの本やサイトを教えてください。

言語はC#を使っています。
0669nobodyさん2008/07/06(日) 11:52:50ID:???
まずやってみれば?
Windows Form Applicationが作れるなら
後はVS付属のヘルプとGoogleで大概のことはできると思うが。
本じゃないと納得できないのなら
.NETエンタープライズWebアプリケーション開発技術大全
0670nobodyさん2008/07/06(日) 12:42:49ID:???
>>668
> 今まで作ったWindowsアプリを画面だけそのままに
> 中身の処理はすべてサーバー上に移動ってことをしたいんですけど、
ASP.NETも所詮はWebアプリケーションを実装するための仕組みなんだが…。
Windows Formsとまったく同じものができると考えると危険だぞ。
0671nobodyさん2008/07/06(日) 15:23:26ID:???
> 今まで作ったWindowsアプリを画面だけそのままに
ミリ
0672nobodyさん2008/07/06(日) 17:16:18ID:???
>>668
ようこそ、silverlightの世界へ。
06736682008/07/06(日) 20:16:22ID:???
>>670
>>671
クライアントにWindowsフォームを使って、
ロジック部分だけサーバー上に置くのって不可能ですか?

>>668
>>672
.NETエンタープライズWebアプリケーション開発技術大全と
silverlightの本買ってきます。
06746682008/07/06(日) 20:17:17ID:???
途中で書き込んでしまいました。

>>668
>>672
VSのヘルプって見たことないので、
ゆっくりと見てみようと思います。
ありがとうございました。
0675nobodyさん2008/07/06(日) 22:09:37ID:???
>>673
>クライアントにWindowsフォームを使って、
>ロジック部分だけサーバー上に置くのって不可能ですか?
それなら(ASP.NETで作れる)XMLウェブサービスを開発すれば良いと思うよ。
まぁウェブアプリケーションでWindowsフォームに似せた
リッチクライアントを開発したいならば,>>672の言うとおり
「ようこそSilverlightの世界へ!」と言うのも楽しいね。
0676nobodyさん2008/07/06(日) 22:36:46ID:???
>それなら(ASP.NETで作れる)XMLウェブサービスを開発すれば良いと思うよ。
いいと思うけど多分いろんなところではまると予想しておこう。
0677nobodyさん2008/07/06(日) 22:47:42ID:???
>>673
Webアプリを作るという前提で。

>.NETエンタープライズWebアプリケーション開発技術大全

↑これは定番のバイブル的な本だけど、1.1ベースなのと読むのがしんどい。
まずは、同じ著者のこっちの方をお勧めする。
「Microsoft Visual Studio 2005によるWebアプリケーション構築技法」
可能であれば店頭で見比べてみて。
0678nobodyさん2008/07/07(月) 01:31:49ID:???
>Microsoft Visual Studio 2005によるWebアプリケーション構築技法

これはオレも推薦する。
小手先の技術じゃなくて、必要性や目的・手段などの解説が秀逸
0679nobodyさん2008/07/07(月) 01:53:23ID:???
もう今やWinFormの全てがWebFormで実現できるじゃまいか
0680nobodyさん2008/07/09(水) 17:41:50ID:???
UpdatePanel に GridView を配置しています。
UpdatePanel の外に UpdateProgressを配置しています。

GridViewはページングを有効にしており、たとえばページ2をクリックをし、読み込み中にページ3をクリックすると
UpdateProgressがエラーをはきます。

エラー内容は
Microsoft JScript 実行時エラー: Sys.InvalidOperationException: ScriptLoader が
スクリプトを既に読み込み中の場合、ScriptLoader.loadScripts を呼び出すことはできません。
というものです。

スクリプトの二重読み込み禁止にするにはどうすればよいでしょうか?
0681nobodyさん2008/07/10(木) 09:54:12ID:???
ついにClassic ASP板が落ちた
0682nobodyさん2008/07/11(金) 14:11:21ID:???
ASP.NET(VS.NET 2005)で時間のかかる処理を待たずに画面を表示したいと考えdelegateとBeginInvokeを利用して非同期実行にしました。
(処理の経過はDBに書き込んでそれを見ています)
この、非同期にしたメソッドがしばらくすると(0:30〜1:30程度で一定していません)
「スレッドを中止しようとしました」(ThreadAbortException)とのエラーで終了してしまいます。
1.このエラーはなぜ起こるのでしょうか?
2.時間のかかる処理を待たずに処理を進めるにはどうしたらよいのでしょうか?
0683nobodyさん2008/07/11(金) 15:30:26ID:???
>>682
非同期処理の中でResponse.RequestとかServer.Transfar使ってない?
0684nobodyさん2008/07/11(金) 15:45:03ID:???
>>683
ありがとうございます。そのあたりは使っていません。
ネットで調べても「ThreadAbortException」はその辺りで発生するという情報しかなくて困っています。
0685nobodyさん2008/07/11(金) 21:24:08ID:???
エスパーじゃないので、問題箇所がわからん。
処理結果はどこで見てるのとか、処理の実行自体は出来てるのかとか。
そのやり方でやるなら、このへん参考になるんじゃね?
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=901201&SiteID=7

ただ・・・ASP.NET 2.0じゃん?
Ajaxのフレームワーク利用するなり
http://www.microsoft.com/japan/msdn/asp.net/learnajax/default.aspx
クライアントコールバック実装するなり
http://msdn.microsoft.com/ja-jp/library/ms178208.aspx
その方が楽じゃねーかなー
0686nobodyさん2008/07/12(土) 21:28:30ID:???
非同期処理の認識が間違ってないか確認したいけど、メイン側の処理が終わったら
ThreadAbortException発生してページ表示完了になるから、後からサブ側の結果を
反映するのは無理だよ。メイン側では必ずサブ側の待ち受けする必要あるから
0687nobodyさん2008/07/12(土) 22:36:06ID:???
>>682
こっちもうまく理解できてないけど。

> 2.時間のかかる処理を待たずに処理を進めるにはどうしたらよいのでしょうか?

・画面上の非同期
と、
・サーバ処理上の非同期
は分けて考えないと。

前者の目的は
・ユーザの待ちを減らして操作感を良くすること。
方法としては、
・AJAX(あるいはComet?)使ったり、
・別ウィンドウでリクエストを飛ばしたり、
・結果は次にポストバックした時に調べるようにしたり、
するといいかも。

後者の目的は
・ASP.NETのスレッドを節約したり、
・並行処理で処理時間を縮めたりすること。
0688nobodyさん2008/07/13(日) 19:53:16ID:PNe/o1jf
マスターページにログアウトボタンがあります。メインのページにあるテキストボックス上でEnterキーを押すと、ログアウトボタンが押されてしまい、ログアウトしてしまいます。これを回避するにはどの様にすればいいでしょうか?
0689nobodyさん2008/07/13(日) 20:13:53ID:???
フォーム分けろよ
0690nobodyさん2008/07/14(月) 05:26:17ID:???
DefaultButton ?
0691nobodyさん2008/07/14(月) 09:36:44ID:???
>>685,686,687
ありがとうございます。
説明が下手で申し訳ありませんしたいのはこういう事です。

1.メイン側はBeginInvokeして画面には処理を開始しましたと表示して終了
2.サブ側は処理を行い状況をDBに書き込む
(この処理は夜間にしたいクライアントは電源を切る)
3.状況確認画面ではそのDBを表示して状況確認
とこんな感じです。

>>685 さんの
>Ajaxのフレームワーク利用するなり
>クライアントコールハ゛ック実装するなり
の案はクライアントを切ってしまう関係でちょっと採用しがたいです。

>>687 さんの
>・サーハ゛処理上の非同期
にあたると思うのですが非同期にしたい理由は2.の通りです。

>>686 さんの話で
>メイン側の処理が終わったらThreadAbortException発生して
と言うのがあるのですがこの方法は根本的に間違っているのでしょうか?
ただ、メイン側が終わった時点ではThreadAbortExceptionは発生していないようなのです。

0692nobodyさん2008/07/16(水) 02:02:24ID:???
>>691
>メイン側が終わった時点ではThreadAbortExceptionは発生して
>いないようなのです。

よく知らんから勘だけで感想。

アプリケーションプログラムから見える処理終了と、スレッドの
ライフサイクルの関係なんて、どうなってるのか普通はわからない。
だからThreadAbortExceptionの発生するタイミングを単純に
あてにしていいかどうかわからない。(裏付けがあれば別だけど。)

あと、ASP.NETのプロセス自体、いつ再起動しても文句言わないでよね、
っていう仕様になってるから、長時間の処理には向いてない。
別のプロセス(Windowsサービス)にやらせるのがいいのかなあ、多分…。
0693nobodyさん2008/07/18(金) 01:09:30ID:???
>>691
じゃあThread.Abort()かThread.Sleep()使ってないか?
これら使うとThreadAbortException発生するよ。
0694nobodyさん2008/07/20(日) 22:18:43ID:iFuM44Na
直接画像や動画を出力したい場合ってどうやったらいいんでしょうか。
phpでいうreadfileみたいな。
0695nobodyさん2008/07/20(日) 22:57:36ID:???
>>694
php知らんけど、やりたいことは

// ファイルの内容を出力
Response.WriteFile()
// バイナリを出力
Response.BinaryWrite()

どっちかだと思う。
0696nobodyさん2008/07/21(月) 14:37:33ID:???
ありがとう、やってみます。
0697nobodyさん2008/07/21(月) 20:10:11ID:???
Response.TransmitFile
の方がいいと思うんだ。
0698nobodyさん2008/07/22(火) 17:01:26ID:???
VS2008使用です

aspxファイルにjavascriptを直接書くことはできますが
jsファイルをaspxファイルから参照するにはどうすればよろしいでしょうか?
0699nobodyさん2008/07/22(火) 19:00:50ID:???
aspxファイルにjsファイルを参照するタグを直接書く
0700nobodyさん2008/07/23(水) 12:57:43ID:???
メモリの空き容量が一定量を下回ったときに、ページを表示せず
503エラーをクライアントに返したいのですが、エラーを返すにはどのようにすれば
良いかわかりません。

Page_LoadでResponse.Writeしてもうまくいきませんでした。
どなたかヒントだけでも教えてください。
0701nobodyさん2008/07/23(水) 13:00:27ID:???
>Response.Writeしてもうまくいきませんでした。
何をWriteしたんだ??
503とか書いたのか??
0702nobodyさん2008/07/23(水) 13:06:33ID:???
.NET の3.5が入ってるなら Respnse.StatusCodeを設定できるのかな。
入ってないなら HttpExceptionをスローが手っ取り早いのかな。
0703nobodyさん2008/07/23(水) 23:20:21ID:???
3.5?
昔っからできるんとちゃうのん?
07047002008/07/23(水) 23:44:14ID:???
>>701
Response.Write("503 Service Unavailable");
としてみたのですが、ページの先頭に表示されるだけでした。。。

>>702
StatusCode = 503;
は何も起こりませんでした。

throw new HttpException(503, "Service Unavailable");
とすると、目的のエラーが返されました!
ありがとうございます!
0705nobodyさん2008/07/24(木) 00:45:29ID:???
>>703
だって解説に
StatusCode は、.NET Framework version 3.5 で導入されました。
ってかいてあったんだもん
0706nobodyさん2008/07/24(木) 10:24:37ID:???
odbcを使用して、PostgreSQLに接続をしたいのですが、

System.Data.Odbc.OdbcConnection odbcConn = new System.Data.Odbc.OdbcConnection(
"data source=サーバのIPアドレス;password=pass;persist security info=True;user id=PostgreSQLユーザID;"
);
odbcConn.Open();

と記述して実行すると、下記のエラーがでます

ERROR [IM002] [Microsoft][ODBC Driver Manager]
データ ソース名および指定された既定のドライバが見つかりません。

ちなみに、サーバエクスプローラのデータ接続には表示されています。
原因わかる人いましたら教えていただけますか?
よろしくお願いします。
0707nobodyさん2008/07/24(木) 10:39:33ID:???
サーバーエクスプローラから、プロパティで接続文字列が見えます。
0708nobodyさん2008/07/25(金) 11:20:08ID:???
>>707
お返事ありがとうございます。

サーバエクスプローラから見たプロパティの接続文字列をつかって試して
みましたが、前回と同じエラーがでてしまいました。

よろしければ、もう少し詳しく教えていただけると助かります。
0709nobodyさん2008/07/25(金) 13:05:21ID:???
では、ODBCのDSNはどこに作りましたか? システムデータソース に作ってみてください。
0710nobodyさん2008/07/25(金) 13:05:59ID:???
途中で送ってしまいました。
0711nobodyさん2008/07/25(金) 13:07:25ID:???
それで、名前を test として登録していれば、 接続は System.Data.Odbc.OdbcConnection odbcConn = new System.Data.Odbc.OdbcConnection(
"Dsn=test"); でいけると思いますが。
0712nobodyさん2008/07/25(金) 19:08:41ID:???
>>711
うまくいきました!
ご丁寧にありがとうごさいます。
0713nobodyさん2008/07/27(日) 02:16:16ID:PuhlOnPo
質問。

ただの text だけを書いた aspx ファイルを設置して、
まず ASP.Net が動作しているかだけを確認したんだけど
同ファイルで web共有フォルダ上のみ動作しないだわ。

1) http://a.xxx.co.jp/folder1/sample.aspx
--> ok
2) http://a.xxx.co.jp/folder2/sample.aspx
--> '/folder2' アプリケーションでサーバー エラーが発生しました。

物理パス
X:\wwwroot\folder1 <-- 名前のとおり root 設定
X:\folder2 <-- web共有で設定。スクリプトのみ許可

IIS のフォルダ別設定は見比べてみたんだけど違いはなかった。
ローカルでエラー内容確認しようとしたけど AD forest の
認証と SSL の関係で、うまくいかず... orz

ほかに何か確認すべきことはある?
0714nobodyさん2008/07/28(月) 23:29:04ID:HmIeNyld
安いノートでVS使えたらと思いますがEeePCでは無理でしょうか?
0715sage2008/07/29(火) 00:49:41ID:jQQEt0MC
>713

自己レス。

X:\folder2 について "NETWORK SERVICE" に
read/write 権限を与えてないことが問題だった。

すまん。首吊ってくるわ orz
0716nobodyさん2008/07/29(火) 01:40:17ID:???
いってらっさい ノシ
0717nobodyさん2008/07/29(火) 03:02:45ID:???
>714
俺には無理だな
0718nobodyさん2008/08/04(月) 23:22:14ID:ssJofGpT
global.asaxで、Application_BeginRequestイベントを
記述して、各画面がロードされる時に共通で行う処理を記述したら、
Gifとか、インポートしている?CssやJsファイルとかまで
このイベントへ飛んできたのですが、
たとえば、要求のあったaspxだけイベントとしてあがってくるようにするなどの
制御ができますでしょうか?

0719nobodyさん2008/08/05(火) 00:11:24ID:???
>Gifとか、インポートしている?CssやJsファイルとかまで
あたりまえだろ

拡張子で判断するのが邪道だが手軽かな。
PostMapRequestHandler とかできちんとハンドラかくにんしてもいいが。
0720nobodyさん2008/08/05(火) 00:12:35ID:???
あ、
>あたりまえだろ
って書いたけどIIS6とかまでのデフォルトの構成では飛んでこないな。
ASP.NETまで来たやつは全部飛んでくる、という意味での当たり前ね。
0721nobodyさん2008/08/05(火) 01:38:14ID:???
>718
IISで動かすとデフォルトではaspxしか来ないと思うよ。
VisualStudioの開発Webサーバーだとなんでも飛んでくる感じ。
0722nobodyさん2008/08/05(火) 01:45:08ID:???
他にもいっぱいくるからチェックはいるよ。
ISAPIのマッピング見りゃ、あーやっぱチェックいるわってなる。
0723nobodyさん2008/08/08(金) 09:42:45ID:???
asp.netってIISと.netフレームワークが入っていれば
.aspxファイルだけで作成されたアプリならVSでのコンパイルとかは
しなくてもいいんですか?
0724nobodyさん2008/08/08(金) 10:17:54ID:???
>>723
Visual Studioは必須ではないよ。
最初のリクエストがあったときにIISでコンパイルされるはず。
パフォーマンス挙げるためにプリコンパイルすることもできる。

必須ではないけれど、Visual StudioのExpress Editionに
Visual Web Developerという無料の開発環境があるから
それいれるといろいろ便利だと思うよ。デバッグとかもしやすいしね。
0725nobodyさん2008/08/08(金) 10:30:01ID:???
>>724
へー。いいですね
0726nobodyさん2008/08/08(金) 11:15:38ID:???
くだらないエラー(構文エラーとか)を事前に排除できるからいいよね。

aspxだけ置いておく
→IISでコンパイルされたdllがキャッシュにたまる
→それをbinフォルダに設置する
…なんて荒技を1.0のころにやった覚えが…。
■ このスレッドは過去ログ倉庫に格納されています