2

IIS 7.5 で ELMAH を使用している WCF (.Net 3.5) サイトで問題が発生しています。これは例外メッセージです:

System.Security.SecurityException: Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

IIS7.5 での WCF と ELMAH の組み合わせであることを確認するために、VS2008 で新しい WCF サービス プロジェクトを作成し、IIS 7.5 サイトで新しいアプリケーションを作成しました。公開して問題ないことを確認しました。次に、ELMAH DLL を追加しました。まだ大丈夫です。次に、ELMAH configSection 参照を Web.config に追加しました。まだ大丈夫です。次に、ELMAH を system.web の httpHandlers と httpModules に追加しました (ええ、これは 7.5 用ではないことはわかっています)。まだ大丈夫です。次に、これを system.webServer のハンドラーとモジュールに追加しました。

<handlers>
    :
  <add name="Elmah" verb="POST,GET,HEAD" 
       path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />

<modules>
    :
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
  <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
  <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />

そして、セキュリティ例外が発生しました。他の構成変更は行っていません。

すべてが VS dev Web サーバーを使用して機能します。開発マシンは、VS 2008 SP1 がインストールされた 2008 R2 x64 です。WCF サービスは x86 用に構築されています (元のプロジェクトが x86 であったため)。ELMAH は .Net 3.5 x86 バージョンです。IIS7.5 アプリケーション プールは、32 ビットを許可するように設定されています。

これを機能させるために何をする必要があるか考えていますか?

4

2 に答える 2

2

私の場合、アプリプールで「load User Profile = True」を設定して機能させる必要がありました。

手順:

アプリケーション プール リストから、[詳細設定] の [プロセス モデル] セクションに移動し、[ユーザー プロファイルの読み込み] を [True] に設定します。

于 2010-09-20T01:08:49.923 に答える
0

仮想 Web ディレクトリの IIS マネージャーでマネージ ハンドラーの追加に移動する必要があります。

  • リクエスト パスは次のようになります。elmah.axd
  • タイプは次のとおりです。Elmah.ErrorLogPageFactory, Elmah
  • 名前:Anything you want it to be identified with.

注: この設定は、Visual Studio から変更を発行するたびに削除されます。そのため、再度追加する必要があります。

于 2010-07-05T12:21:39.867 に答える