RSS

カテゴリー : ASP.NET

[ASP.NET] (未検証)最小限のバッチコンパイルで実行する

web.configのcompilationセクションを変更することで、バッチコンパイルを行うファイルの操作が可能な模様

通常、machine.configに設定されているcompilationの設定を継承して、ロードされるため
privatePathであるbinフォルダ内のアセンブリはすべてバッチコンパイルされる。

論理上、webserviceの実行(起動?)に必要なファイルだけバッチコンパイルされるだけでも
(実行時にコストがかかるかもしれないが)実行時にアセンブリがロードされれば実行可能だと考える。

なんで、clearセクションを追加してサービスのアセンブリ、システムアセンブリ(machine.config参照)でやればいいのでは・・・

とりあえずためしにやってみた。
webサービスページは表示可能。
実際に動作するかは不明。

だめなときはビルドに必要だったアセンブリを追加すればいいのかな。とか思いながら。

[ASP.NET] 別権限のユーザーで実行

Web.Configで
(<configuration><system.web>内)
<identity impersonate="true" userName="zzzzz" password="xxxxxx"/>
ただし、パスワードが設定してあるユーザーでのみ有効。

※ドメインユーザーの場合はドメイン属性とか domain/zzzzz とかいうユーザ名になるやも。
認証モードがwindowsである必要があると思う。(デフォルトはwindows)
→ <authentication mode="Windows" />

identityに関する一般的な説明
→ http://www.microsoft.com/japan/msdn/net/security/SecNetAP05.aspx

アプリケーションレベルで偽装
→ http://support.microsoft.com/default.aspx?scid=kb;ja;306158

[SQLServer] servletなどのサーバーアプリケーションだとODBC,jdbcがつながらない

ユーザーDSN→設定したユーザーしかつかえない
システムDSN→他のユーザーも使用可能

たとえばsun.jdbc.odbc.JdbcOdbcDriverを使っていて
javaアプリケーションではつながるが、servletにするとつながらない場合なんかはあやしい。

select * from sysobjectsとかでもだめならより一層怪しい。

[ASP.NET] Validatorを使用せずにPostBackするには

たとえばButtonとValidatorを配置した場合、
Buttonを押すとValidatorが働き、チェックに引っかかった場合はPostBackしない。
(HTMLコントロールのSubmitは除く)

通常はこれでいいが、戻るボタンとかでもValidatorがチェックを開始するのはよろしくない。
この場合はコントロールのCausesValidation プロパティをfalseにセットすればよい。

なお、HTMLコントロールのSubmitなどでもRunat="server"の時は同様の対処が必要。

[ASP.NET] メモリ内の情報を確認する

@PAGE ディレクティブにて
Trace=\"True\"
とすれば、セッション変数、ポストパラメータなどのメモリ情報を出力することが可能。

[ASP.NET] ポストバック元のコントロール

  • AutoPostBack=true で設定したコントロールの場合

から取得する。

  • Button(Webコントロール)の場合

コントロールの nameをキーに valueがPOSTされてくる。
複数の Buttonがある場合、押された物しかPOSTされてこないのでそこを利用する。

Buttonのクリックイベントに__doPostBackを呼び出す javascript function を追加するというかなり強引な手もあるが、
ページ上にButtonしかない(というか PostBackするコントロールが Buttonしかない)場合、__doPostBackは存在しないことがあり、その場合はエラーになるなど、安定しないのでお勧めはしない。

[ASP.NET] パートナー トランザクション マネージャにより…

パートナー トランザクション マネージャにより、リモート トランザクションまたはネットワーク トランザクションのサポートが無効にされました。

コンポーネントサービス、
>マイコンピュータ(右クリック)
>プロパティ
「MSDTC」タブ
[セキュリティの構成]ボタン
(シードでの最小構成)
●ネットワークDTCアクセス
●リモートクライアントを許可する
●受信を許可する
●送信を許可する
●認証を必要としない

を、サーバー側、クライアント側双方で設定する。
(サーバー側だけかも)

TIP、XAは有効にしても問題なし。
リモート管理は、用途に応じて。

本当の2003環境であれば認証つけないとまずいと思うが、
ドメインつくってないとだめかも。

[ASP.NET] セッション情報を外部プロセスで管理するには?

http://www.atmarkit.co.jp/fdotnet/dotnettips/183aspsesout/aspsesout.html

state serviceの使い方。
SQLServerモードの解説はない。

[ASP.NET] エラー「DropDownList には複数の項目を選択できません」とは

ListBoxには複数選択モードは存在するが、
DropDownListには存在しない。

たとえばユーザーがDropDownListのアイテムを選択した状態でポストバックが走り、
サーバー処理で違うアイテムを選択状態にしようとすると、
このエラーが発生する。

[csharp]
// wrong case 1
ListItem l = DropDownList1.items.FindByText("item_user_doesn\’t_selected");
l.Selected = true;
[/csharp]
[csharp]
// wrong case 2
items["one more error"].Selected = true
[/csharp]
たとえば上記のような操作の前で、

すべてのSelectedをfalseにするか、
SelectedIndex = -1 とするかで解決する

[csharp]
SelectedIndex = -1;
ListItem l = DropDownList1.items.FindByText("item_user_doesn\’t_selected");
l.Selected = true;
[/csharp]
[csharp]
SelectedIndex = -1;
items["one more error"].Selected = true
[/csharp]


2013/05/31 追記

上記は .NET 1.14のころに書いたもの。
vs2012 では エラーは「DropDownList で複数項目が選択されるように指定できません。」だった。