-PR-
  • 困ってます
  • 質問No.6668215
締切り
済み

.NET(C#)でのスタックオーバーフロー回避方法

  • 閲覧数5181
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 0% (0/2)

ASP.NET初心者です。初めて質問させていただきます。

ASP.NET(C#)でwin32系の外部ライブラリを使用したいのですが、そのライブラリを読み込むところで
スタックオーバーフローが発生してしまいます。

同じライブラリをWindowsアプリケーション(C#)で使用したところ問題なく実行できました。
ASP.NETで同じように使用しようとするとスタックオーバーフローが発生してしまう状態です。
[デバッグ中のエラーメッセージ]
xxxx.dllを読み込めません。再帰が深すぎます。スタックがオーバーフローしました。
[イベントログ]
障害が発生しているアプリケーション名: w3wp.exe、バージョン: 7.5.7600.16385、タイム スタンプ: 0x4a5bcd2b
障害が発生しているモジュール名: xxxx.dll_unloaded、バージョン: 0.0.0.0、タイム スタンプ: 0x4d92e27c
例外コード: 0xc0000005

xxxx.dllは、今回使用したいDLLです。

過去の質問等でスタックオーバーフローが発生した場合の解決策を探してはみたのですが、見つけられた方法が以下の2つでどちらもうまくいきませんでした。
(1)スタック領域を大きくする →スレッドでスタック領域を指定して実行してみました。
(2)ライブラリの中身をスタックオーバーフローが起きないように変更する → ライブラリの中身は変更できない状態です。

(1)のほうは、指定方法間違えてるかもしれません。。。
Thread newthread = new Thread(new ThreadStart(init), 0);

もしくは、w3wp.exeでエラーが発生しているということはIIS関係で何かおかしなことをしてしまってるのかもとか・・・。

根本から見方が間違ってるかもしれませんが、(1)の方法の正しいやり方、もしくはそれ以外の解決策をご教授頂きますようよろしくお願いいたします。
  • 回答数2
  • 気になる数0
  • みんなの回答(全2件)

    回答 (全2件)

    • 回答No.1
    レベル13

    ベストアンサー率 59% (729/1235)

    (1)(2)は逃げの方法です。 まずは、何故スタックオーバーフローが発生するかつきとめる。 「呼び出し履歴」を見るとか。
    (1)(2)は逃げの方法です。

    まずは、何故スタックオーバーフローが発生するかつきとめる。
    「呼び出し履歴」を見るとか。
    • ありがとう数0
    • 回答No.2
    レベル11

    ベストアンサー率 81% (127/155)

    Win32系の外部ライブラリ、というのはどういうものでしょう。 COMコンポーネントだとすると、以下のURLにあるような注意が必要ですが、このあたりは大丈夫ですか? http://www.atmarkit.co.jp/fdotnet/aspmigrt/aspmigrt03/aspmigrt03_03.html
    Win32系の外部ライブラリ、というのはどういうものでしょう。
    COMコンポーネントだとすると、以下のURLにあるような注意が必要ですが、このあたりは大丈夫ですか?

    http://www.atmarkit.co.jp/fdotnet/aspmigrt/aspmigrt03/aspmigrt03_03.html
    • ありがとう数0
    • 回答数2
    • 気になる数0
    • ありがとう数2
    • ありがとう
    • なるほど、役に立ったなど
      感じた思いを「ありがとう」で
      伝えてください
    • 質問する
    • 専門家・企業を含めた、
      多くの人々が答えてくれます
    こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
    このQ&Aにはまだコメントがありません。
    あなたの思ったこと、知っていることをここにコメントしてみましょう。

    関連するQ&A

    -PR-
    -PR-

    その他の関連するQ&Aをキーワードで探す

    別のキーワードで再検索する
    -PR-
    -PR-
    -PR-

    特集


    -PR-

    ピックアップ

    -PR-
    ページ先頭へ