获取Javascript错误:$ create(Microsoft.Reporting.WebFormsClient.ReportViewer

时间:2010-11-09 12:14:28

标签: asp.net silverlight reportviewer

我们有一个报表查看器,它将以下jscript添加到aspx文件中:

//<![CDATA[
Sys.Application.add_init(function() {

if (typeof Microsoft == 'undefined' ||
    typeof Microsoft.Reporting == 'undefined' ||
    typeof Microsoft.Reporting.WebFormsClient == 'undefined' ||
    typeof Microsoft.Reporting.WebFormsClient.ReportViewer == 'undefined')
    Sys.UI.DomElement.setVisible($get('ReportViewer1_HttpHandlerMissingErrorMessage'), true);
    $create(Microsoft.Reporting.WebFormsClient.ReportViewer, {"_internalViewerId":"ReportViewer1_ctl03","id":"ReportViewer1"}, null, null);
});

但是当它点击

时,它会继续显示脚本错误“Microsoft is undefined”
$create(Microsoft.Reporting.WebFormsClient.ReportViewer

线。 我们刚刚从Silverlight 3 / VS2008升级到SL4 VS2010 - 有什么遗漏?

3 个答案:

答案 0 :(得分:2)

我得到完全相同的错误。我按照http://otkfounder.blogspot.com/2007/11/solving-reportviewer-rendering-issue-on.html的说明进行操作 但这并没有解决问题,我仍然得到错误。试一试,它可能对你有用......

答案 1 :(得分:2)

只需将此行添加到system.web httpHandlers标记内的web.config

即可
  <add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

或您正在使用的令牌和版本。

答案 2 :(得分:0)

添加

  <add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<httpHandlers>中{p}到<system.web>(如上面的一个答案所示)似乎是一个不赞成的设置,在我尝试之后我立即得到了一个不同的错误:

  

HTTP错误500.22 - 内部服务器错误
  检测到的ASP.NET设置不适用于集成管理管道模式。

我发现新设置必须在这里:

<system.webServer>
  <handlers>
     <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </handlers>
  ...

将此内容添加到Web.config后,该网站立即为我工作。提示如何配置ReportViewer控件本身可以找到here