2013-06-25 50 views
1

我有一個引用第三方DLL的.NET 4.0應用程序,它顯然不支持4.0。在配置文件中使用useLegacyV2RuntimeActivationPolicy =「true」可在本地運行時運行,但在IIS 7.5服務器上運行時不會運行。.net useLegacyV2RuntimeActivationPolicy在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的網站,它似乎沒有任何區別是否存在或不存在。當這行代碼被擊中時,代碼就會死掉;它不會拋出任何託管異常。

Google搜索的幫助,所有的頁面基本上聲明添加的配置設置固定它對於他們來說,通常引用這或有輕微的變體:

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

但這並沒有爲我的應用程序。由於我無法從Web應用程序中獲得實際的錯誤,因此我很遺憾下一步要去哪,幫助表示感謝。

回答

1

由於沒有人回答,我只會投入我的五美分。

useLegacyV2RuntimeActivationPolicy允許包含.NET 2.0之前的「怪異」(通常涉及混合程序集)。但它是以犧牲並列執行爲代價的。

我認爲你還沒有找到正確的入口位置。不要混淆App.Config文件的Web.Config。 Web.Config服務於另一個完全不同的目的。我假設你需要找到可執行文件的App.Config文件。

(用是否IIS將積極響應此設置,我不知道。)

+0

我現在覺得這是關鍵,它是應用程序配置不web.config中;等待標記爲答案,直到我們實際得到這個工作。我認爲它可能實際上是aspnet.config文件... – Abacus

+0

或IIS的可執行文件的app.config。想想看,你可以使用這個找到正確的配置文件:AppDomain.CurrentDomain.SetupInformation.ConfigurationFile – Tormod