.Net useLegacyV2RuntimeActivationPolicy在IIS 7.5中不起作用

时间:2013-06-25 17:47:31

标签: .net web-config iis-7.5

我有一个引用第三方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'或其中一个它的依赖关系。系统找不到指定的文件。“

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

用Google搜索帮助,所有页面基本上都说明添加配置设置会为他们修复,通常会引用这个或略有变化:

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

但这对我的申请不起作用。由于我无法从Web应用程序中获得实际错误,因此我不知道下一步该怎么做,感谢帮助。

1 个答案:

答案 0 :(得分:1)

由于还没有人回答,我只会投入五美分。

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

我认为您没有找到正确的参赛地点。不要混淆App.Config文件的Web.Config。 Web.Config服务于另一个完全不同的目的。我假设你需要找到可执行文件的App.Config文件。

(无论是否IIS都会对此设置作出积极回应,我不知道。)