【问题标题】:Check what needs full trust检查什么需要完全信任
【发布时间】:2013-08-13 13:42:04
【问题描述】:

我刚刚完成了网站核心功能的开发,现在已将其上传到主机进行测试。

很遗憾,我收到以下错误:

安全异常

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

经过繁琐的搜索,我意识到这是因为我是在完全信任的环境中开发的,而我的顽固宿主只允许中等信任。

当我在 web.config 中设置中等信任时,调试器不会显示完全信任环境的确切需要。

有什么方法可以清楚地检查这一点,或者以某种方式迫使网站合作?

我将 MVC 与 FormsAuthentication、代码优先数据库等结合使用。

【问题讨论】:

  • PS:我不能包含“有效代码”,因为我不知道是什么代码导致了这个问题。因此,将问题标记为题外话有点适得其反。
  • 这可能会有所帮助stackoverflow.com/a/558389/542251
  • “将问题标记为离题,因为这有点适得其反” - 你需要做一些研究。了解如何调试和/或记录信任问题,找到您使用的抛出这些问题的类,发现 ASP.NET 中等信任正在被弃用,搜索与您的主机联系是否支持 ASP.NET MVC 等等。近距离投票不是为了好玩,而是为了确保质量问题。 :-)
  • 我明白这一点——但到目前为止我所读到的所有内容都只会导致“要求您的主机完全信任”或“这里是如何将您的网站设置为中等”。 Brakpoints 根本没有帮助(在将 web.config 设置为中等信任之后),因为异常被抛出 /somewhere/.在有人指出之前,我并没有真正考虑过日志记录。作为一个问答网站,这很有帮助。
  • 是的,从上面的错误消息中,您需要在完全信任上运行它。如果没有,它不会工作

标签: c# asp.net-mvc hosting signalr


【解决方案1】:

经过多次反复试验,我找到了错误。

Microsoft 的 SignalR 需要完全信任,而且没有办法绕过它。

禁用它可以解决问题。

编辑
从长远来看,似乎任何可以帮助该网站的图书馆都已经过时了。如果有人收到此错误,只需在更改核心代码之前禁用(注释掉)您使用的任何三级库。

断点根本没有帮助,因为在禁用 SignalR 后,我在某个页面上出现了错误。设置断点并没有停止错误事件中的代码,因为事实证明安全异常是在 C# 深处的某个地方抛出的,并且没有被带到顶部。

【讨论】:

  • 我同意这个消息。无论如何,中等信任已死
【解决方案2】:

你有两个选择

  1. 您可以拥有两个 web.config 文件,一个用于调试,一个用于在与您的托管环境尽可能接近的环境下发布和测试。
  2. 另一个选项可能是两个有一个具有中等信任集的单个配置文件,并使用日志记录到文件/事件记录器以允许您进行调试

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-20
  • 1970-01-01
相关资源
最近更新 更多