Notification Services自定义传递通道DLL信任问题

时间:2011-11-15 14:36:48

标签: c# sql-server trust notificationservices

我们有一个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,因为通知服务需要这个。

我们目前几乎没有想法,希望有人能提出建议吗?

2 个答案:

答案 0 :(得分:3)

我们设法修复了我们的问题。看起来Windows Server 2008在实现代码访问方面更加严格。通过强大的名称授予.DLL访问权限,而不是允许Notification Services访问代码的路径。

Notification Services没有错。

答案 1 :(得分:-1)

我认为你有两种选择之一:

  1. 拥抱SQL 2008并摆脱Notification Services,因为它已被弃用。使用Reporting Services或SSIS来执行您所需的操作。

  2. 恢复为SQL 2005。

  3. 恕我直言,我会选择1.继续使用已弃用的工具进行构建,很快就会发现您的支持(社区或供应商)非常难以获得。

    <强>更新

    这对评论来说太长了。

    不要过分夸大你的头脑,但是继续为3年前EOL(生命终结)技术开发应用程序是第一个错误。 EOL声明非常公开。

    第二个是QA环境与生产完全不同。在将任何部署到生产环境之前,QA环境应该是相同的......相同类型的硬件,相同的操作系统,相同的服务器版本和补丁级别。否则QA就是一个笑话,正如你所发现的那样。

    现在,关于“解决方案”,实际上只有一条路径:使用适当的补丁将生产环境恢复为SQL 2005。

    祝你好运。