【问题标题】:Cannot perform CAS Asserts in Security Transparent methods security level issue无法在安全透明方法安全级别问题中执行 CAS 断言
【发布时间】:2013-06-10 07:32:00
【问题描述】:

我在主机上遇到了这个错误。

  System.InvalidOperationException: Cannot perform CAS Asserts in Security Transparent methods
   at System.Security.CodeAccessSecurityEngine.CheckNReturnSO(PermissionToken permToken, CodeAccessPermission demand, StackCrawlMark& stackMark, Int32 create)
   at System.Security.SecurityRuntime.Assert(PermissionSet permSet, StackCrawlMark& stackMark)
   at System.Security.PermissionSet.Assert()
   at MySql.Data.MySqlClient.MySqlParameter.SetTypeFromValue()
   at MySql.Data.MySqlClient.MySqlParameter.set_Value(Object value)
   at MySql.Data.MySqlClient.MySqlParameter..ctor(String parameterName, Object value)

但是在 localhost 项目中成功运行。我正在使用 asp.net 4.0 和 mysql。在某些资源中说我必须更改信任级别但我无法更改。因为我的托管公司不允许为此更改 web 配置文件主题。如何在不更改 Web 配置的情况下更改信任级别。如何解决此问题? 提前致谢

【问题讨论】:

    标签: c# asp.net mysql hosting cas


    【解决方案1】:

    我猜您使用的是共享主机,因此如果他们不授予您执行此操作的权限,您将无法更改信任级别。

    您使用的是什么版本的 MySQL 连接器? 您是否尝试将它们复制到项目的 \bin 文件夹中? (右键单击 MySQL.* 引用,然后设置为“Copy Local = true”)

    您是否可以尝试从 localhost 连接到您的数据库服务器以确保您的连接字符串参数正常?

    【讨论】:

    • 直到上周我都在使用最新版本的 mysql 连接器。但一周前托管发生了一些变化,mysite 已关闭。之后我尝试使用 mysql 连接器 6.2.5,我的站点成功在主机上运行.现在我的网站使用 mysql 连接器 6.2.5。所以我使用的是旧版本的 mysql 连接器。这种情况是否会使我的网站容易受到任何攻击?
    • 不,没有!主机提供商确实在服务器上设置了较少的权限,以避免一个客户应用程序从另一个客户应用程序/私人空间获取信息。较新版本的 MySql 连接器需要更多权限……它是如何构建的……无法改变这一点。更改为可以为您提供更多访问权限的新主机。更多权限并不意味着安全性降低,除非他们没有在服务器上的用户/应用程序之间正确配置权限。
    • 我在使用连接器 6.5 及更高版本时遇到了这个问题。我根据@dgn 的建议恢复到 6.2.5,它也对我有用。
    猜你喜欢
    • 1970-01-01
    • 2013-12-13
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 2015-06-20
    • 1970-01-01
    • 2017-03-15
    相关资源
    最近更新 更多