0

我想在中等信任下运行 Castle.Core,并且我知道如何在理论上做到这一点。

  1. 将 [AllowPatiallyTrustedCallers] 添加到 Assembly.cs
  2. 禁用跟踪记录器 - (因为它使用反射)

第一个问题,没有 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所以如果你愿意,欢迎在回答之前先检查一下

4

2 回答 2

1

我认为您走错了路-您无需添加 [AllowPatiallyTrustedCallers] 即可以中等信任度运行。如果您要对程序集进行 GAC,则仅需要 APTCA,在这种情况下,您不需要远程跟踪记录器,因为 GAC 程序集在完全信任的情况下运行并且反射会起作用。

于 2009-12-31T17:47:32.463 回答
1

[更新]

好吧,我的坏。我不是中等信任问题的专家,但据我了解,您毕竟需要 APTCA on Castle 组件。

所以这就是我所做的:

我从以下网址提取了 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 网站,将信任级别设置为中等,并在其中生成了几个代理,并且它工作正常。

如果由于某种原因对您不起作用,或者您有任何其他问题/建议,请告诉我。

于 2010-01-01T17:21:52.823 回答