【问题标题】:Reporting Services and custom assembly connecting to third party web service连接到第三方 Web 服务的 Reporting Services 和自定义程序集
【发布时间】:2011-06-20 23:49:53
【问题描述】:

我有以下问题。我正在使用 Reporting Services 2005 创建一些报告。我从我的自定义程序集中调用方法,当我的方法如下时它工作正常:

public static string TestMethod() {
return "test"; }

但是,当返回“测试”时;替换为调用第三方 Web 服务的代码,我的 RS 报告中没有返回任何内容。我什至无法将我的异常记录到 EventLog(可能是出于安全原因)。 I 类由以下语句修饰:

[System.Web.AspNetHostingPermission(SecurityAction.Assert, Level = System.Web.AspNetHostingPermissionLevel.Unrestricted)]

此外,为了调用 Web 服务,我在自定义程序集中添加了以下内容:

string serviceUri = "http://externallink/Default.asmx";
                WebPermission p = new WebPermission(NetworkAccess.Accept, serviceUri);
p.Assert();

这也无济于事。我的自定义程序集中抛出的错误如下:

请求类型的许可 'System.Net.WebPermission,系统, 版本=2.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089' 失败

有人可以帮帮我吗?

编辑1: 我发现报告服务使用名为:RosettaSrv 的自定义信任级别。自定义策略在 rssrvpolicy.config 中设置。当我将信任级别更改为完全时,一切正常。但是我不想指定完全信任,只是可能访问自定义 Web 服务,我该怎么做?

【问题讨论】:

    标签: web-services reporting-services


    【解决方案1】:

    您必须在 CAS 策略配置文件(如您所述)中为 RS 创建特定的 CodeGroup 部分,告诉它为您的程序集授予该权限。

    请按照此 MSDN 文章中的步骤了解详细信息:http://support.microsoft.com/kb/842419

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 1970-01-01
      相关资源
      最近更新 更多