![](/img/trans.png)
[英]Security Exception with Microsoft AddIn Framework (MAF) Callback using two AppDomains
[英]Exception while debugging using windows MAF (AddIn pipeline)
我一直在尝试构建AddIn架构并使用MAF。 我所遵循的基础知识在Microsoft文档中给出
关于申请的简要背景:
加载AddIns时,主机中的主要代码是:
string appPath = Environment.CurrentDirectory + "\\Pipeline";
string[] warnings = AddInStore.Rebuild(appPath);
if (warnings.Length > 0)
{
string msg = "Could not rebuild pipeline:";
foreach (string warning in warnings) msg += "\n" + warning;
MessageBox.Show(msg);
return;
}
Collection<AddInToken> addInTokens = AddInStore.FindAddIns(typeof(IWPFAddInHostView), appPath);
AddInToken wpfAddInToken = addInTokens[0];
// the only line I can see that has something to do with
// security permissions
this._wpfAddInHostView = wpfAddInToken.Activate<IWPFAddInHostView>(AddInSecurityLevel.Internet);
FrameworkElement addInUI = this._wpfAddInHostView.GetAddInUI();
this.addInUIHostGrid.Children.Add(addInUI);
当我运行它时,此代码工作正常(加载addIn并在addIn UI中单击按钮时弹出预期的消息框),但在调试模式下,它会出现以下异常并导致崩溃(它会正确加载addIn但单击按钮时发生异常),我已经标记了唯一与上述安全权限有关的行,不确定为什么这只会在调试模式下发生,甚至为什么会发生。
另外,我在一个问题中不知道2个问题,但我没有看到很多人使用MAF,产品页面没有主动支持,不知道我是否做出了错误的选择。
System.Security.SecurityException HResult = 0x8013150A
Message =请求类型'System.Security.Permissions.UIPermission,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的权限失败。
Source = StackTrace:
更改安全权限
this._wpfAddInHostView = wpfAddInToken.Activate<IWPFAddInHostView>(AddInSecurityLevel.Internet);
完全信任的作品。
this._wpfAddInHostView = wpfAddInToken.Activate<IWPFAddInHostView>(AddInSecurityLevel.FullTrust);
所以,显然这与网络安全水平有关,将是部分信任。 但我仍然很好奇,为什么只有当我在调试模式下运行系统时才会发生此异常?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.