問題タブ [httpapplication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - HttpApplication の単体テスト
いくつかの追加機能を追加する HttpApplication から派生したクラスがあります。これらの機能を単体テストする必要があるところまで来ました。つまり、HttpApplication の新しいインスタンスを作成し、リクエストを偽造し、レスポンス オブジェクトを取得できる必要があります。
HttpApplication オブジェクトの単体テストを正確に行うにはどうすればよいですか? 現在 Moq を使用していますが、必要なモック オブジェクトを設定する方法がわかりません。
c# - Global.asax の問題
私は HttpModule を開発し、Global.asax を使用しています。HttpApplication から派生するクラスを開発しましたが、クラスの Application_Start メソッドが実行されません (Application_Start の先頭にファイルを作成しますが、ファイルが作成されないため、Application_Start が実行されないと思います)。VSTS2008 + C# + .Net 3.5 を使用しています。
何が間違っていて、どのようにデバッグするのですか? Global.asax を Web サイトの仮想ディレクトリのルート ディレクトリにコピーする必要があることを確認したいのですが、正しいですか? HttpModule を実行するには、web.config で何かを構成する必要がありますか?
c# - C#ASP.NET HttpModules:HttpApplicationイベント
WebアプリケーションにHttpApplication(Global.asax)があります。これを使用して、未処理の例外をキャッチしてログに記録し、WebFormURLRoutingを設定します。これはすべて機能しますが、このコードをアプリケーションフレームワークに移動したいと思います(つまり、Global.asax.csにはありません)。
フレームワークでHttpApplicationクラスを作成しようとしましたが、イベントをオーバーライドできないようです。とにかく、私はこれらのイベントを消費する代わりにHttpModuleを使用できると信じています、これを行います:
1)Global.asaxの必要性を完全に排除しますか?
2)これはスケールアップにどのように影響しますか?つまり、最終的にはWebファームでアプリケーションを実行します
3)ファイルのアップロードやファイルのダウンロードなどの他の処理を行うHttpHandlerがありますが、使用するHttpModule / HttpHandlerの数に制限はありますか、それともオーバーヘッドを減らすためにこれらを組み合わせる必要がありますか?
コメントをいただければ幸いです
asp.net - IIS6のASP.NETの静的*.JSファイルのApplication_BeginRequest?
一見単純そうに見えることをしようとしています。基になるファイルが存在するかどうかに関係なく、IIS6Webサイトに送信されるすべての静的*.JSURLに対してApplication_BeginRequestが呼び出されるようにします。
IIS6およびASP.NET3.5でこれを行うための良い方法は何ですか。理想的には、すべての静的ファイルがASP.NETを通過することなく(.JS URLのみ)。
理由がわからない場合は、Application_BeginRequestを使用してカスタムリダイレクトとパスの書き換えを行う既存のアプリを使用しています。この方法で実装するのは私の最初の選択ではありませんでしたが、そこにあるものを考慮して、別の異なるリダイレクト/書き換え方法(IISリダイレクト構成、書き換えモジュールなど)を含めるのではなく、.JSもカバーするように拡張したいと思います。)これは、特にIIS6でのアプリの展開とテストを複雑にする可能性があります。
ここでのIIS7の話ははるかに優れていることは知っていますが(特に、構成やモジュールなどのXCOPY展開に関して)、現在このアプリをアップグレードすることはできません。
asp.net - ASP.NET-MVC でカスタム 404 ページを表示するには?
私のサイトでいずれかの URL が 404 である場合、ASP.NET-MVC でレンダリングされたカスタム 404 ページを表示したいと考えています。ただし、標準の Web フォームが無効になるため、ワイルドカード ルート アプローチは使用したくありません。私のコードは現在次のようになっています。
このコードは App_Error 内にあります
//1 は機能します。Test.aspx は標準の Web フォームです。
//2 は asp.net-mvc ルートであるため機能しません
MVC ルートを機能させるには?
asp.net - ASP.Net 用のベアボーン HttpApplication を作成する方法 (Web フォームまたは MVC なし)
わかりました、ASP.Net が内部でどのように機能するかについてもっと知りたいと思っています。MVC や Webforms などのフレームワークの下を意味します。
基本的に、これらのフレームワークが IIS で動作するように ASP.Net にどのように接続されているかを知りたいです。IIS で動作し、MVC も Web フォームも使用しない単純な HttpApplication を作成するための最低限の要件は何でしょうか? Web.config に最低限必要なものは何ですか? Global.asax には何が追加されますか?
asp.net - Application_Start と OnInit とコンストラクター
12 年ほど前に古典的な ASP のプログラミングを始めて以来、私はこれを繰り返してきましたが、ASP と ASP.NET のアーキテクチャは常に悪い慣行の沼地であり、魔法が共有されていたため、優れた解決策を見つけたことはありませんでした。シングルトンなど。私の最大の問題は、HttpApplication
イベント以外のイベント( 、など)を持つオブジェクトにApplication_Start
ありApplication_End
ます。
HTTP アプリケーションの存続期間全体で 1 回だけ何かを実行したい場合は、それを実行するのに最適Application_Start
な場所です。右?ではない正確に。まず、これはイベント自体ではなく、IIS によって作成された AppDomain ごとに 1 回メソッドが呼び出される魔法の命名規則です。
魔法の命名規則が恐ろしい慣習であることに加えて、オブジェクトにStart
イベントのようなものが存在しない理由かもしれないと私は考え始めました。HttpApplication
そのため、 などの存在するイベントを試してみましたInit
。これも実際にはイベントではなく、オーバーライド可能なメソッドであり、次善の策です。
このメソッドは、AppDomain ごとに複数回発生するInit()
、オブジェクトのインスタンス化ごとに呼び出されるようです。これは、起動ロジックをオブジェクトのコンストラクターHttpApplication
内に配置するだけでよいことを意味します。HttpApplication
ここで私の質問は、起動ロジックをコンストラクターに入れるべきではないのはなぜですか? なぜさえInit()
存在し、私は気にする必要がありApplication_Start
ますか? HttpApplication
もしそうなら、オブジェクトのこの疑似イベントに適切なイベントまたはオーバーライド可能なメソッドがない理由を誰か説明できますか?
そして、典型的なASP.NETアプリケーションで、myの8つのインスタンスが作成される理由を誰でも説明できますかHttpApplication
(これにより、コンストラクターとInit
が同じ回数実行されます。これは、ロックと共有静的ブール値で軽減できますinitialized
)アプリケーションに AppDomain が 1 つしかない場合
.net - System.Web.HttpApplication に関する MSDN からの引用
http://msdn.microsoft.com/en-us/library/4wt3wttw.aspxからの引用:
HttpApplication クラスの 1 つのインスタンスは、その存続期間中に多くの要求を処理するために使用されます。ただし、一度に 1 つの要求しか処理できません。したがって、メンバー変数を使用して、リクエストごとのデータを格納できます。
なぜリクエストごとに?多分リクエストのセットごとですか?メンバー変数を使用して、HttpApplication のライフサイクル全体でデータを格納できるようです。したがって、2 番目の (この HttpApplication の) 要求の開始時の HttpApplication の状態は、最初の (この HttpApplication の) 要求の終了時の状態と同じです。
なぜリクエストごとに?
asp.net - 応答ソースを変更するための最良のHttpApplicationイベント
応答のソースをスキャンし、主にURL( s、s、sなど)HttpModule
を変更する小さな調整を行うために、を作成するつもりです。href
action
src
には処理できるイベントがたくさんあるのがわかりますHttpApplication
が、ブラウザに戻るHTMLコンテンツを安全に変更できる最適な段階がわかりません。
HttpModule
これはアプリケーション全体の処理であり、すべてのページで同じコードを記述する必要がないため、これを行う必要があります。
asp.net-mvc-2 - Application_BeginRequest()の前のASP.NET断続的な遅延
ASP.NET MVC 2を使用しています。デバッグモードの場合、Global.asaxでHttpApplication_BeginRequest()がヒットする前に、サーバーへの他のすべての要求で非常に一貫した5〜10秒の遅延があります。
それは他のすべての要求とまったく同じように発生します。リリースモードでは常に高速ですが、デバッグモードでのテストで問題が発生します。呼び出しスタックを調べましたが、HttpApplication_BeginRequest()の前にあるのは「外部コード」だけなので、何が起こっているのかわかりません。パイプラインでこのラグを引き起こしているものをどのように見つけることができますか?ありがとう。