問題タブ [ihttphandler]

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.

0 投票する
4 に答える
2620 参照

.net - IHttpAsyncHandlerが負荷時にメモリをリークするのはなぜですか?

.NET IHttpAsyncHandler(および程度は低いですがIHttpHandler)が、同時Web要求にさらされると、メモリをリークすることに気づきました。

私のテストでは、Visual Studio Webサーバー(Cassini)が6MBのメモリから100MBを超えるメモリにジャンプし、テストが終了すると、再利用されることはありません。

問題は簡単に再現できます。2つのプロジェクトで新しいソリューション(LeakyHandler)を作成します。

  1. ASP.NET Webアプリケーション(LeakyHandler.WebApp)
  2. コンソールアプリケーション(LeakyHandler.ConsoleApp)

LeakyHandler.WebAppの場合:

  1. IHttpAsyncHandlerを実装するTestHandlerというクラスを作成します。
  2. リクエスト処理で、短いスリープを実行し、応答を終了します。
  3. HTTPハンドラーをtest.ashxとしてWeb.configに追加します。

LeakyHandler.ConsoleAppの場合:

  1. test.ashxへの多数のHttpWebRequestを生成し、それらを非同期で実行します。

HttpWebRequests(sampleSize)の数が増えると、メモリリークがますます明らかになります。

LeakyHandler.WebApp> TestHandler.cs

LeakyHandler.WebApp> Web.config

LeakyHandler.ConsoleApp> Program.cs

デバッグの更新

WinDbgを使用してダンプファイルを調べましたが、いくつかの疑わしいタイプがメモリに保持されており、解放されていません。10,000のサンプルサイズでテストを実行するたびに、これらのオブジェクトがさらに10,000個メモリに保持されることになります。

  • System.Runtime.Remoting.ServerIdentity
  • System.Runtime.Remoting.ObjRef
  • Microsoft.VisualStudio.WebHost.Connection
  • System.Runtime.Remoting.Messaging.StackBuilderSink
  • System.Runtime.Remoting.ChannelInfo
  • System.Runtime.Remoting.Messaging.ServerObjectTerminatorSink

これらのオブジェクトは第2世代のヒープにあり、強制的に完全なガベージコレクションを実行した後でも収集されません。

重要な注意点

この問題は、シーケンシャルリクエストを強制する場合でも存在し、Thread.Sleep(10)inがなくてもProcessRequest、はるかに微妙です。この例は、問題をより簡単に明らかにすることで問題を悪化させますが、基本は同じです。

0 投票する
1 に答える
182 参照

c# - IHttpHandler を解決できません

何らかの理由で、IHttpHandler を実装するクラスを作成しようとすると、IHttpHandler を解決できません。

次のようなステートメント:

どちらも助けていません。

これはクラス ライブラリ プロジェクトです。次の例を参照してください: http://www.15seconds.com/issue/020417.htm

私は何を間違っていますか?

0 投票する
1 に答える
94 参照

asp.net - IHttpHandlerと相対URLの問題

IHttpHandlerクラスを開発し、それをとして構成しverb="*" path="*"たので、htmlを動的に生成するテストWebサイト用の独自のREST実装を作成するために、すべてのリクエストを処理しています。

したがって、.cssファイルのリクエストが届いたらcontext.Response.WriteFile(Server.MapPath(url))、写真などでも同じように処理する必要があります。すべて自分で応答する必要があります。

私の主な問題は、相対URLをアンカーに配置するときです。たとえば、このようなリンクのあるメインページが<a href="page1">Go to Page 1</a>あり、ページ1には別のリンクがあり<a href="page2">Go to Page 2</a>ます。ページ1と2は同じレベルにあるはずです(http://host/page1そしてhttp://host/page2、[ページ2に移動]をクリックすると、ハンドラーで次のURLを取得しました:~/page1/~/page2... url = urlを実行する必要があるため、これは面倒です。 .SubString(url.LastIndexOf('〜'))をクリーンアップしますが、問題はなく、この動作は完全に正常であると感じています。

今は対応できますが、将来的には頭痛の種になると思います。の情報を使って絶対URLですべてのリンクを設定しようとしましたcontext.Request.Urlが、それも苦痛です:Dなので、このようなことを行うためのより良い方法があるかどうか知りたいです。

私はWeb開発にかなり慣れていないので、URLやHttpなどの基本的なことをスキップしているので、遠慮なく私にはっきりとした応答をしてください。

よろしくお願いします。

0 投票する
1 に答える
994 参照

javascript - jQueryオートコンプリートを外部JSONで動作させることができません

jQueryオートコンプリートが必要なASP.NETアプリに取り組んでいます。現在、txt63入力ボックスにデータを入力しても何も起こりません(txt63のような名前を使用して私を怒らせる前に、私は知っています...しかし、それは私の呼び出しではありません:D)。

これが私のJavaScriptコードです

これが私のHTTPハンドラーです

古いバージョンのjQueryライブラリで動作していたので、ASPXページの残りの部分には適切なコントロールがあります。「dev」CDNが廃止されると聞いたので、新しいもので動作させようとしています。

どんな助けや指示も大歓迎です。

0 投票する
1 に答える
375 参照

.net - .net IHTTPHandler ストリーミング SQL バイナリ データ

ストリーミング ファイル用に ihttphandeler を実装しようとしています。ファイルは小さなサムネイルまたは巨大なムービーかもしれません
バイナリはSQLサーバーに保存されています
私はオンラインでたくさんのコードを見ましたが、何かが意味をなさない
のはストリーミングではなく、データを1つずつ読み取って行を移動することになっていますか?
ほとんどのコードは、最初に mssql からメモリにフィールド全体を読み取ってから、出力書き込みにストリーミングを使用するようです。
実際にディスクからバイト単位で http に直接ストリーミングする方が効率的ではないでしょうか (またはバッファリングされたチャンクでしょうか?)
、ここに私のコードがあります。これまでのところ、sqlreader モードとストリーム オブジェクトと書記体系の正しい組み合わせがわかりません。

end using end sub を使用して終了

この sql コマンドは、クエリの 2 番目のフィールドにファイル拡張子 (pdf、jpg、doc...) も返すことに注意してください。

どうもありがとうございました

編集:

さらにコードを見つけることができたので、ページが断続的に表示されるようになりました。
ここでパターンを理解できない場合があり
ます。主な問題は、リクエストが別のページからのもので、「新しいタブに表示」をクリックした場合に発生すると思いますが、機能しませんでした。「新しいウィンドウで表示」を行うと、ほとんどの場合機能しますが、常に機能するとは限りません。
ところで。コードは常に実行されます。壊れたりエラーになったりすることはありません。要求ごとに最初から最後までいい子のように実行される
ことがある IE が長い間、(新しいタブから) 「Adobe/Acrobat リーダーに問題があります。Adobe Acrobat/Reader を終了してからやり直してください」というメッセージが表示されることがあります."
問題は何でしょうか?
ここに私の現在のコードがあります

どうもありがとうございます

0 投票する
3 に答える
1043 参照

dll - このクラス ライブラリ dll が app.config から情報を取得しないのはなぜですか

私はカスタム HttpHandler を開発しています。そのために、C# クラス ライブラリを作成し、DLL にコンパイルします。

この一環として、アプリにハードコードしたくないディレクトリの場所がいくつかあるので、以前に使用した app.config に入れようとしています。

これが機能する前に、 app.configをビルドするだけです。

そして、次のようなコードでこれを取得します。

しかし、それをコンパイルして webservice の bin フォルダーに入れるとshareDirectory、おそらく app.config が見つからないため、 が null になり続けます。では、ディレクトリの場所をハードコードする必要がないように、これが含まれていることを確認するにはどうすればよいですか? 基本的に、コンパイル後に assembly.dll と app.config ファイルである assembly.dll.config を取得することに気付きました。したがって、それは間違いなく bin フォルダーにあります。

0 投票する
3 に答える
4094 参照

asp.net - ASP.Net HttpHandler ProcessRequest() が 2 回起動する

ProcessRequest() イベントが 2 回発生する HttpHandler があるという奇妙な問題があります。

クラスには静的メソッドへのポインター以外に何もないので、迷っています。

何人かの人々が同様の問題を抱えているように見えても、私はいくつかのグーグルを無駄にしました:

コード:

0 投票する
2 に答える
776 参照

c# - IHttpHandler null セッション (一部のサーバー)

IRequiresSessionState を実装する IHttpHandler があります。ほとんどのサーバーですべて正常に動作しますが、2 つのサーバー (1 つの IIS 7.0 と 1 つの IIS 7.5) で null セッションが発生します。Aspx ページはすべてのサーバーで問題ありません。何時間も検索しましたが、IRequiresSessionState に関係のないものは見つかりませんでした。

0 投票する
3 に答える
1551 参照

asp.net - HttpHandlerが無視されるのはなぜですか?

ASP.NETアプリケーションでは、送信されるすべてのCSSファイルにいくつかの変更を加える必要があります。

そこで、(アプリ自体の内部に)HttpHandlerを作成し、次のように追加しました。

Web.configに移動しsystem.web/httpHandlers、次のようにハンドラーを変更しました。

ただし、CSSファイルは以前とまったく同じであるため、ハンドラーは無視されます。

私が間違っているのは何ですか?

0 投票する
1 に答える
357 参照

asp.net - Ihttpmodule 、Ihttphandler .NET

HttpModule と HttpHandler について疑問があります。明確にするのを手伝ってください

1) HttpModule で、メソッド Init が一度だけ呼び出されることに気付きました。リクエストごとに context_BeginRequest や context_EndRequest などのメソッドを呼び出します。モジュールの場合、Init が異なるユーザー (または異なる要求) に対して 1 回呼び出され、BeginRequest などが異なるユーザー (または異なる要求) に対して毎回呼び出されることが保証されていますか?

2)複数のアプリケーションオブジェクトが存在する可能性があるため、Application_Start(global.asax) が複数回実行される可能性はありますか?

3)アプリケーションオブジェクトは(アプリケーションプールとは)異なる場合があるため、この場合、アプリケーションデータは異なるユーザー間でどのように共有されますか?

4) HttpHandler では、ProcessRequest メソッドが要求ごと (またはユーザーごと) に呼び出されます。

ありがとうリトゥ