【问题标题】:.Net useLegacyV2RuntimeActivationPolicy not working in IIS 7.5.Net useLegacyV2RuntimeActivationPolicy 在 IIS 7.5 中不起作用
【发布时间】:2013-06-26 02:27:00
【问题描述】:

我有一个引用第三方 DLL 的 .Net 4.0 应用程序,它显然不支持 4.0。在配置文件中使用 useLegacyV2RuntimeActivationPolicy="true" 使其在本地运行时可以工作,但在 IIS 7.5 中在我们的服务器上运行时不能工作。

第三方软件来自http://crystal-decisions-inc.software.informer.com/,DLL的:

  • CrystalDecisions.CrystalReports.Engine
  • CrystalDecisions.ReportSource
  • CrystalDecisions.Shared

本地计算机和 Web 服务器都安装了相同的 Crystal Reports 运行时,CRRuntime_32bit_13_0_5.msi。

我的本​​地应用程序正在使用一个测试项目运行,该项目是一个 Windows 窗体应用程序。在 app.config 中,包含以下内容时它可以工作:

<configuration>
  ...
  <startup useLegacyV2RuntimeActivationPolicy="true" >
  </startup>
</configuration>

如果不包含,本地代码会导致此异常:

“无法加载文件或程序集 'C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll' 或其中之一它的依赖关系。系统找不到指定的文件。"

当我将相同的 标签添加到网站的 web.config 时,它是否存在似乎没有任何区别。当那行代码被命中时,代码就死了;它不会抛出任何托管异常。

谷歌搜索帮助,所有页面基本上都声明添加配置设置为他们修复了它,通常引用这个或轻微的变体:

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

但这不适用于我的应用程序。由于我无法从 Web 应用程序中获得实际错误,因此我不知道下一步该去哪里,感谢您的帮助。

【问题讨论】:

    标签: .net web-config iis-7.5


    【解决方案1】:

    既然还没有人回答,那我就扔五分钱吧。

    useLegacyV2RuntimeActivationPolicy 允许包含 .NET 2.0 之前的“怪异”(通常涉及混合程序集)。但这样做是以牺牲并行执行为代价的。

    我认为您没有找到正确的输入位置。不要将 Web.Config 与 App.Config 文件混淆。 Web.Config 服务于另一个完全不同的目的。我假设您需要找到可执行文件的 App.Config 文件。

    (IIS 是否会积极响应此设置,我不知道。)

    【讨论】:

    • 我现在认为这是关键,它是应用程序配置而不是 web.config;等待标记为答案,直到我们真正得到这个工作。我认为它实际上可能是 aspnet.config 文件...
    • 或者IIS的可执行文件app.config。想想看,你可能会找到正确的配置文件:AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    • 1970-01-01
    • 2015-11-19
    • 2023-03-08
    • 2014-05-07
    • 1970-01-01
    相关资源
    最近更新 更多