8

NHibernateを使用してASP.NETMVCアプリケーションを開発しており、Automapperを使用して、ビューに送信されたDTOオブジェクトからドメインオブジェクトを非表示にしようとしています。

  1. ドメイン(NHibernate用)およびDTOオブジェクトを含むClassLibrary
  2. SessionFactory私のプロジェクトでファクトリーを作成するためのクラスライブラリ

AutoMapperをダウンロードしてDTOでドメインオブジェクトを変換し、でこれを行うためのコードを追加しましたApplication_Start

VisualStudioで(F5キーを押して)アプリを実行すると、正常に動作し、DTOがビューにマップされます。

これをIISで公開すると、セキュリティ例外が発生します。

Mapper.CreateMap<Category, CategoryDto>(); 
Mapper.CreateMap<Product, ProductDto>();

System.Security.SecurityException:タイプ'System.Security.Permissions.ReflectionPermission、mscorlib、Version = 2.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'のアクセス許可の要求に失敗しました。

Automapperをセキュリティ例外なしで機能させるにはどうすればよいですか?

4

3 に答える 3

13

AutoMapper.dllを右クリックし、[プロパティ]を選択して[ブロックを解除]します。

次に、IISを再起動します

于 2010-05-20T16:59:38.970 に答える
3

リフレクション権限を取得するには、IISを完全に信頼して実行する必要があります。リフレクション権限はこちらをご覧ください

またはここで 信頼レベルを設定します

you need this because Automapper uses reflection to emit code o_O
于 2010-05-08T19:41:27.493 に答える
0

dllのブロックを解除し(Leeが述べたように、AutoMapper.dllを右クリック>[プロパティ]>[ブロック解除]を選択します)、サイトのアプリプールをリサイクルします。IISを再起動する必要はありません。

于 2011-07-11T15:00:00.900 に答える