我们有一个SQL Notifcation Services实例,我们为此编写了一个自定义传递通道。我们在运行带有SQL Server 2005的Windows Server 2003的QA环境中启动并运行了这个过程。我们需要进行一些调整以获得自定义DLL,但是我们已经完成了所有工作。
我们已将此代码部署到Live环境中。这将运行带有SQL 2005 for Notification Services实例的Windows Server 2008,但之后我们有一个SQL 2008实例,它承载Notification Services的实际数据库实例。 Notification Services可以正常工作但是我们无法使自定义DLL受信任,因此自定义传递通道将无法工作。我们只是得到错误
That assembly does not allow partially trusted callers
我们尝试过使用.NET配置实用程序和caspol.exe来完全信任.dll完全没有运气。 .dll被编译为.NET 2 dll,因为通知服务需要这个。
我们目前几乎没有想法,希望有人能提出建议吗?
答案 0 :(得分:3)
我们设法修复了我们的问题。看起来Windows Server 2008在实现代码访问方面更加严格。通过强大的名称授予.DLL访问权限,而不是允许Notification Services访问代码的路径。
Notification Services没有错。
答案 1 :(得分:-1)
我认为你有两种选择之一:
拥抱SQL 2008并摆脱Notification Services,因为它已被弃用。使用Reporting Services或SSIS来执行您所需的操作。
恢复为SQL 2005。
恕我直言,我会选择1.继续使用已弃用的工具进行构建,很快就会发现您的支持(社区或供应商)非常难以获得。
<强>更新强>
这对评论来说太长了。
不要过分夸大你的头脑,但是继续为3年前EOL(生命终结)技术开发应用程序是第一个错误。 EOL声明非常公开。
第二个是QA环境与生产完全不同。在将任何部署到生产环境之前,QA环境应该是相同的......相同类型的硬件,相同的操作系统,相同的服务器版本和补丁级别。否则QA就是一个笑话,正如你所发现的那样。
现在,关于“解决方案”,实际上只有一条路径:使用适当的补丁将生产环境恢复为SQL 2005。
祝你好运。