调试VSTO word插件中的TrustNotGrantedException异常

本文关键字:TrustNotGrantedException 异常 插件 VSTO word 调试 | 更新日期: 2023-09-27 18:06:47

我得到TrustNotGrantedException抛出我们的VSTO word插件的一些特定用户。

这些用户已正确安装证书。

当应用程序检查更新时抛出异常:

try
{
    ApplicationDeployment.CurrentDeployment.CheckForUpdate()
}
catch(TrustNotGrantedException ex)
{
    Log(ex);
}

堆栈跟踪记录如下:

User has refused to grant required permissions to the application.
   at System.Deployment.Application.ApplicationTrust.RequestTrust(SubscriptionState subState, Boolean isShellVisible, Boolean isUpdate, ActivationContext actCtx, TrustManagerContext tmc)    at System.Deployment.Application.DeploymentManager.DetermineTrustCore(Boolean blocking, TrustParams tp)    at System.Deployment.Application.DeploymentManager.DetermineTrust(TrustParams trustParams)    at System.Deployment.Application.ApplicationDeployment.CheckForDetailedUpdate(Boolean persistUpdateCheckResult)    at System.Deployment.Application.ApplicationDeployment.CheckForUpdate()    at iReport.iReportAddIn.CheckForUpdates()

有没有人经历过这种情况,或者知道如何在代码中防止这种情况或有任何变通方法?

编辑:

我已经通读了这篇关于问题的博客文章,似乎这可能是问题用户的CAS权限问题。

我将尝试使用此方法给问题用户访问更新URL的权限,并稍后跟进,尽管我更希望能够在代码中防止这种情况,而不是修复单个客户端机器。比如:

caspol -m -ag 1 -url "http://machinename/application/*" FullTrust -exclusive on

Edit2:

使用caspol.exe工作!有人知道在代码中防止这种情况发生的方法吗?或者有人能解释一下为什么这种情况只会发生在特定的用户身上吗?

Edit3:

我将尝试添加

<system.web>
  <!-- level="[Full|High|Medium|Low|Minimal]" -->
  <trust level="Full" originUrl=""/>
</system.web>

到app.config

标:

在app.config中添加完整的CAS信任没有帮助。谁能告诉我是否有可能实现CASPOL在代码中所做的事情?

Edit5:

如果在代码中不可能做到这一点,是否有一种简单的方法来运行CASPOL命令作为clickonce安装的一部分?

调试VSTO word插件中的TrustNotGrantedException异常

在最近的Windows版本中,下载的文件被标记为阻止并有安全限制,当被其他应用程序使用时,由于沙箱可能会导致损坏。

实现使用NTFS alternate streams。如果文件被阻止,您可以通过右键单击文件,查看属性并看到unblock按钮来判断。单击unblock将移除stream并释放额外的安全限制。

也可以用sysinternals streams.exe去除。通过在Windows 7机器上下载插件来测试这是否是你的问题,然后在不解锁的情况下安装,看看是否再次出现这个问题。

相关文章:
  • 没有找到相关文章