2013-03-04 80 views
1

在我正在开发的MVC应用程序中,我们最近开始使用ActiveReports 7来满足报表生成需求。在我的本地机器上,一切正常。。然而,当我们部署到我们的团队级测试开发服务器,我们得到了LicenseException:SectionReports,ActiveReports的LicenseException 7.0.6158.0

License for the SectionReport cannot be found.

我们跟着用户指南here来尝试解决该问题的不同方式。

我们所做的:

  • 确保了licenses.licx文件引用的组件,并且正确的ActiveReports 7个组件被内置,并通过我们的项目中引用。既然这样,在licenses.licx文件看起来像这样(没有的换行符):

GrapeCity.ActiveReports.SectionReport, GrapeCity.ActiveReports.v7, Version=7.0.6158.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport, GrapeCity.ActiveReports.Export.Pdf.v7, Version=7.0.6158.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff

  • 由于这是一个MVC Web项目,使用随附大会授权发电机AR7创建一个[Assembly] .Web.License.dll库,我们在解决方案级的/lib/目录中构建项目。此更改对许可证异常没有影响。

  • 使用Web密钥生成器为App.config文件创建密钥。此更改对许可证异常没有影响。

我们还没有做:

  • 创造了一些Web表单,并创建了得到与我们的项目建立了一个App_License.dll库。我们没有这样做的原因是我们没有使用Web控件来处理报告,我们甚至没有使用GrapeCity.ActiveReports.Web程序集,并且该错误不是来自该库中的任何类(这是合乎逻辑的,看看我们没有使用它)

这一切的唯一值得注意的细节是,修改licenses.licx文件有一个早期的效果,因为我们有另一个组分上的类似许可例外。确保licenses.licx具有适当的细节,以确保其他组件不再在我们的应用程序中抛出LicenseExceptions。我试着从这里认为,也许我的licenses.licx文件仍然缺乏使这个应用程序工作所需的东西。

我唯一能想到的就是推荐我们的服务器作为开发商的领先许可证,但这种可能性已经出现了,而且我们要求采取的方向是避免那条路线,如果在所有可能的。我认为这是可能的,因为我遇到过类似的帖子,其中涉及上面的用户指南中的步骤,并且大概能够解决问题。然而,对于我的团队来说,这些步骤并不奏效。

问题:我错过了什么?

回答

3

使用程序集许可证生成器应该这样做。此外,请确保您使用的是最新版本的AR7,因为根据this post on the ActiveReports 7 Support Forums,对ActiveReports 7的某些更高版本进行了修正,以纠正此方案中的许可问题。具体从前面提到的后给出的步骤表示,继以下步骤与更新版本纠正别人的问题:

  • 运行程序“ApplicationLicenseGenerator.exe”从一个位置(如管理员)类似“C: \ Program Files文件\ Common Files文件\ ComponentOne的\的ActiveReports开发7 \ “ApplicationLicenseGenerator.exe”
  • 浏览到编译的ActiveReports DLL。
  • 按 “生成” 按钮。
  • 这在汇编类似于yourclasslibraryname卫星。 dll.GrapeCity.Licenses.dll
  • 将DLL放在您的Web项目的bin文件夹中,并/或在您的Web服务项目中引用生成的DLL。
+1

我还发现我必须在我的Web服务项目中引用这个生成的DLL。 – 2013-03-04 20:48:55

+1

我在类库中有我的报告,这样他们可以被MVC应用程序和WinForms应用程序共享。我发现我必须为类库生成许可证,但是我必须在MVC应用程序和WinForms应用程序中引用生成的许可证DLL才能让Visual Studio在构建过程中包含该文件。 – 2013-03-19 13:58:43

+0

@CharlieKilian感谢您解释这一点。我认为这是最安全的做法。另外,我认为你也可以将任何报告添加到Winforms项目中,并授权winforms项目本身来处理这个问题。但是,对于MVC和类似的项目,您创建的应用程序由另一个进程托管,一般来说,授权是非常挑剔的,最好的方法是使用ActiveReports附带的GrapeCity/ComponentOne工具来授权DLL。 – 2013-03-19 21:15:09

0

答:对于非授权用户,[Assembly].GrapeCity.License.dll必须作为参考添加到web项目中!但是,从构建的角度来看,这个问题很重要。但许可证文件没有丢失任何东西。

相关问题