SecurityException - 共享主机上的Dapper

时间:2012-05-28 06:32:34

标签: asp.net .net-4.0 shared-hosting dapper securityexception

对于我目前的项目,我使用Dapper。一切都很完美。然后我需要在共享主机上部署它。结果可以在这里看到(复制YSOD):

  

描述:应用程序尝试不执行操作   安全政策允许。授予此应用程序   必要的权限请联系您的系统管理员或更改   应用程序在配置文件中的信任级别。

     

异常详细信息:System.Security.SecurityException:请求   'System.Security.Permissions.ReflectionPermission类型的权限,   mscorlib,版本= 4.0.0.0,文化=中性,   PublicKeyToken = b77a5c561934e089'失败。

堆栈跟踪

  

[SecurityException:请求类型的权限   'System.Security.Permissions.ReflectionPermission,mscorlib,   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'   失败。] System.Security.CodeAccessSecurityEngine.Check(Object   需求,StackCrawlMark& stackMark,Boolean isPermSet)+0
  System.Security.CodeAccessSecurityEngine.Check(的CodeAccessPermission   cap,StackCrawlMark& stackMark)+31
  System.Security.CodeAccessPermission.Demand()+46
  System.Reflection.Emit.DynamicMethod.PerformSecurityCheck(类型所有者,   StackCrawlMark&安培; stackMark,Boolean skipVisibility)+9461551
  System.Reflection.Emit.DynamicMethod..ctor(String name,Type   returnType,Type [] parameterTypes,Type owner,Boolean skipVisibility)   +40 Dapperx.SqlMapper.CreateParamInfoGenerator(身份标识)+537 Dapperx.SqlMapper.GetCacheInfo(身份标识)+376 Dapperx.d__13 1.MoveNext() +644
System.Collections.Generic.List
1..ctor(IEnumerable 1 collection) +327 System.Linq.Enumerable.ToList(IEnumerable 1 source)+58
  Dapperx.SqlMapper.Query(IDbConnection cnn,String sql,Object param,   IDbTransaction事务,布尔缓冲,可为空1 commandTimeout, Nullable 1 commandType)+199
  ...

有没有办法解决它(在.NET 4.0中)? 据我所知,到目前为止我所阅读的内容,提供商必须允许一些部分来反映IIS,这可能会给他们带来安全风险......

1 个答案:

答案 0 :(得分:2)

在Medium Trust中不允许使用Dapper使用的Reflection.Emit。

您应该找到提供完全信任的托管服务提供商。 discountasp.net是我以前用过的。