5

私の現在のプロジェクトでは、Dapper を使用しています。すべてが完璧です。次に、共有ホスティングにデプロイする必要がありました。結果はここで見ることができます (コピーされた YSOD):

説明: アプリケーションは、セキュリティ ポリシーで許可されていない操作を実行しようとしました。このアプリケーションに必要な権限を付与するには、システム管理者に連絡するか、構成ファイルでアプリケーションの信頼レベルを変更してください。

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

スタックトレース

[SecurityException: タイプ 'System.Security.Permissions.ReflectionPermission、mscorlib、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089' のアクセス許可の要求が失敗しました。] System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark , Boolean isPermSet) +0
System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) +31
System.Security.CodeAccessPermission.Demand() +46
System.Reflection.Emit.DynamicMethod.PerformSecurityCheck(Type owner, StackCrawlMark& stackMark, Boolean skipVisibility) +9461551
System.Reflection.Emit.DynamicMethod..ctor(String name, Type returnType, Type[] parameterTypes, Type owner, Boolean skipVisibility) +40 Dapperx.SqlMapper.CreateParamInfoGenerator(ID ID) +537 Dapperx.SqlMapper.GetCacheInfo(ID ID) +376 Dapperx.d__13 1..ctor(IEnumerable 1 ソース) +58 Dapperx.SqlMapper.Query(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable 1 commandType) +199 ...1.MoveNext() +644
System.Collections.Generic.List
1 collection) +327 System.Linq.Enumerable.ToList(IEnumerable
1 commandTimeout, Nullable

(.NET 4.0で)それを解決する方法はありますか? 私がこれまでに読んだことを理解している限り、プロバイダーは IIS のリフレクションからいくつかの部分を許可する必要があり、これはセキュリティ上のリスクになる可能性があります...

4

1 に答える 1

2

Dapper で使用される Reflection.Emit は、Medium Trust では許可されません。

完全な信頼を提供するホスティング プロバイダーを見つける必要があります。 discountasp.netは、私が以前に使用したものです。

于 2012-08-21T05:05:12.983 に答える