下载 Castle.Core 并添加 [AllowPatiallyTrustedCallers]
我想在中等信任度下运行 Castle.Core,并且理论上我知道如何做到这一点。
- 将 [AllowPatiallyTrustedCallers] 添加到 Assembly.cs
- 禁用跟踪记录器 - (因为它使用反射)
第一个问题,没有 Assembly.cs,所以显然您可以使用 nant 通过命令行进行构建,例如:
nant -D : assembly.allow-partially-trusted-callers=true
但这会返回错误
NAnt 0.84 (Build 0.84.1455.0; net-1.0.win32; release; 26/12/2003)
Copyright (C) 2001-2003 Gerry Shaw
http://nant.sourceforge.net
Buildfile: file:///D:/Downloads/development - source/Castle Proxy/Core/src/Castl
e.Core/default.build
Target(s) specified: nant
BUILD FAILED
Property 'project::get-name()' has not been set.
Total time: 0.1 seconds.
如何设置或解决问题? Castle.Core 的 svn 是 https://svn.castleproject.org/svn /castle/Core/trunk 因此,如果您愿意,欢迎在回答之前检查一下
I want to run Castle.Core under medium trust, and I know how to do it in theory.
- Add [AllowPatiallyTrustedCallers] to the Assembly.cs
- Disable Trace Logger - (because it uses reflection)
First problem, there is is no Assembly.cs, so apparently you can use nant to build with a command line like:
nant -D:assembly.allow-partially-trusted-callers=true
But that returns an error
NAnt 0.84 (Build 0.84.1455.0; net-1.0.win32; release; 26/12/2003)
Copyright (C) 2001-2003 Gerry Shaw
http://nant.sourceforge.net
Buildfile: file:///D:/Downloads/development - source/Castle Proxy/Core/src/Castl
e.Core/default.build
Target(s) specified: nant
BUILD FAILED
Property 'project::get-name()' has not been set.
Total time: 0.1 seconds.
How do I set this or resolve the issue?
The svn for this the Castle.Core is https://svn.castleproject.org/svn/castle/Core/trunk so your welcome to check it out before answering if you want
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
[更新]
好吧,我的错。我不是中等信任问题的专家,但我的理解方式< /a>,毕竟您在 Castle 程序集上需要 APTCA。
所以这就是我所做的:
我从以下位置提取了 Castle Core: https://svn.castleproject。 org/svn/castle/Core/trunk
下载了 NAnt 的最新夜间版本,并使用
nant build -D: assembly.allow-partially-trusted-callers=true
构建它,然后我从以下位置下载了动态代理: https://svn.castleproject.org/svn/castle/DynamicProxy/trunk
复制了我在上一步中构建的核心程序集到 lib/net-35,然后使用相同的 Nant 命令构建 DP。
然后,我创建了一个 ASP.NET 网站,将信任级别设置为“中”,并在其中生成了几个代理,结果成功了。
如果由于某种原因这对您不起作用,或者您有任何其他问题/建议,请告诉我。
[UPDATE]
OK, my bad. I'm not an expert in medium trust issues, but the way I understand it, you need APTCA on Castle assemblies after all.
So here's what I did:
I pulled Castle Core from: https://svn.castleproject.org/svn/castle/Core/trunk
downloaded latest nightly build of NAnt and built it with
nant build -D:assembly.allow-partially-trusted-callers=true
I then downloaded Dynamic Proxy from: https://svn.castleproject.org/svn/castle/DynamicProxy/trunk
copied the Core assembly I built in previous step to lib/net-35 and then built DP with the same Nant command.
I then created an ASP.NET website with trust level set to Medium and generated a couple of proxies in it, and it worked.
If for some reason that does not work for you, or you have any other issues/suggestions let me know.
我认为你的做法是错误的 - 你不需要添加 [AllowPatiallyTrustedCallers] 来以中等信任度运行。如果您要对程序集进行 GAC,则仅需要 APTCA,在这种情况下,您不需要远程跟踪记录器,因为 GAC 程序集在完全信任的情况下运行,并且反射可以工作。
I think you're going the wrong way about it - You don't need to add [AllowPatiallyTrustedCallers] to run in medium trust. You only need APTCA if you're going to GAC the assembly, in which case you wouldn't need to remote Trace Logger because GACed assemblies run in full trust and reflection would work.