在我正在开发的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文件仍然缺乏使这个应用程序工作所需的东西。
我唯一能想到的就是推荐我们的服务器作为开发商的领先许可证,但这种可能性已经出现了,而且我们要求采取的方向是避免那条路线,如果在所有可能的。我认为这是可能的,因为我遇到过类似的帖子,其中涉及上面的用户指南中的步骤,并且大概能够解决问题。然而,对于我的团队来说,这些步骤并不奏效。
问题:我错过了什么?
我还发现我必须在我的Web服务项目中引用这个生成的DLL。 – 2013-03-04 20:48:55
我在类库中有我的报告,这样他们可以被MVC应用程序和WinForms应用程序共享。我发现我必须为类库生成许可证,但是我必须在MVC应用程序和WinForms应用程序中引用生成的许可证DLL才能让Visual Studio在构建过程中包含该文件。 – 2013-03-19 13:58:43
@CharlieKilian感谢您解释这一点。我认为这是最安全的做法。另外,我认为你也可以将任何报告添加到Winforms项目中,并授权winforms项目本身来处理这个问题。但是,对于MVC和类似的项目,您创建的应用程序由另一个进程托管,一般来说,授权是非常挑剔的,最好的方法是使用ActiveReports附带的GrapeCity/ComponentOne工具来授权DLL。 – 2013-03-19 21:15:09