我有一个 Delphi 5 可执行文件,它通过免费的Delphi .NET代码调用 .NET 程序集,而且在大多数情况下,这很好用。但是,我的应用程序的要求之一是我们的客户能够从网络共享以及本地使用它。在我的测试机器上,我无法让它工作,我只是收到一条错误消息。.NET 代码将其权限设置为完整,但又出现了一些错误,Delphi 似乎无法获取或解释。在本地驱动器上,应用程序和程序集可以完美通信。
谁能告诉我如何至少从中获取错误消息?或者如果可能的话,谁能告诉我为什么我会这样出错?谢谢。
我有一个 Delphi 5 可执行文件,它通过免费的Delphi .NET代码调用 .NET 程序集,而且在大多数情况下,这很好用。但是,我的应用程序的要求之一是我们的客户能够从网络共享以及本地使用它。在我的测试机器上,我无法让它工作,我只是收到一条错误消息。.NET 代码将其权限设置为完整,但又出现了一些错误,Delphi 似乎无法获取或解释。在本地驱动器上,应用程序和程序集可以完美通信。
谁能告诉我如何至少从中获取错误消息?或者如果可能的话,谁能告诉我为什么我会这样出错?谢谢。
您说您已授予代码完全权限,但您是否已将 FullTrust 分配给网络共享?在 .NET 中,网络共享是本地 Intranet 域的一部分,因此您会失去一些信任。运行类似的东西;
CasPol.exe -m -ag 1.2 -url file://\\ShawnFa-Srv/Tools/* FullTrust
有关更多信息,请参阅有关该主题的这篇文章,使用 CasPol 完全信任共享
更新到 .NET 3.5 SP 1。这消除了本地 Intranet 和本地 HDD 上的文件之间的区别WRT 代码访问安全性(包括 2.0 程序集)。
是的,我已完全信任该份额。这就是我所说的完全权限的意思,我已经习惯了向非技术人员解释它。
好的,我在重新审视 CasPol 和 .NET Framework 配置实用程序(实用程序)之间的差异以及它们各自的工作方式时找到了答案。这可能有点长,因为我在这里为自己以及其他有相同问题但未完成该过程的人(就像我一开始没有完成)。
当我第一次尝试 CasPol,然后是实用程序时,我没有意识到我需要将新记录输入到现有的“区域”部分,并尝试将其作为主“所有代码”部分下的新部分输入。将其移动到 Intranet 区域让代码运行。
我尝试过的另一个地方是安装 .NET Framework 3.5,但失败了,因为我错过了我没有安装 SP1。将 SP1 安装到测试机器也解决了这个问题。这种方法是我的老板决定我们要使用的,因为它最大限度地减少了我们与客户的 IT 人员之间的互动。
感谢你们俩的帮助。我很珍惜时间。