簡體   English   中英

無法加載文件或程序集“Microsoft.AspNet.TelemetryCorrelation”或其依賴項之一。 該系統找不到指定的文件

[英]Could not load file or assembly 'Microsoft.AspNet.TelemetryCorrelation' or one of its dependencies. The system cannot find the file specified

我在 IIS 7(本地 Windows 10 Pro)下有兩個 Web 應用程序。 根是 MVC .Net 版本 4.7.1。 到目前為止,這里似乎一切正常。 但是,在默認站點根目錄下設置為單獨的應用程序是較舊的 .Net 版本 4.0 WebForms 應用程序。

第 4 版應用程序是在 Visual Studio 2015 中構建的,MVC 是使用 Visual Studio 2017 構建的。我有第 4 版 WebForms 應用程序在具有相同設置的不同網站下運行,並且運行良好。 只有在根節點下作為不同的應用程序運行時才會出現問題。 此外,我嘗試在兩個應用程序上使用不同的應用程序池以及使用相同的應用程序池而錯誤沒有變化。

我也試過卸載 ApplicationInsights 並禁用它,但我遇到了同樣的問題。

[FileNotFoundException: 無法加載文件或程序集“Microsoft.AspNet.TelemetryCorrelation”或其依賴項之一。 系統找不到指定的文件。] System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, BooleanreflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type) +0 System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, BooleanreflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName) +95 System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) +64 System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) +60 System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode 節點, Boolean checkAptcaBit, Boolean ignoreCase) +49

[ConfigurationErrorsException: 無法加載文件或程序集“Microsoft.AspNet.TelemetryCorrelation”或其依賴項之一。 系統找不到指定的文件。] System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase) +558 System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, Boolean checkAptcaBit) +30 System.Web.Configuration.Common.ModulesEntry.SecureGetType(String typeName, String propertyName, ConfigurationElement configElement) +57 System.Web.Configuration.Common.ModulesEntry..ctor(String name, String typeName, String propertyName, ConfigurationElement configElement) +57 System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList) +182 System.Web.HttpApplication.GetModuleCollection(IntPtr appContext) +1086 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +120 System.Web.HttpApplication.InitSpecial(HttpApplicationState state, M ethodInfo[] handlers, IntPtr appContext, HttpContext context) +169 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +372 System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +329

[HttpException (0x80004005): 無法加載文件或程序集“Microsoft.AspNet.TelemetryCorrelation”或其依賴項之一。 系統找不到指定的文件。] System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +525 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +118 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) + 708

就我而言,子應用程序沒有使用 ApplicationInsights,我將這些排除項添加到子應用程序web.config文件中。 它解決了這個問題。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="false">
      <remove name="TelemetryCorrelationHttpModule" />
      <remove name="ApplicationInsightsWebTracking" />
    </modules> 
  </system.webServer>
</configuration>

這是我找到答案的討論主題https://github.com/aspnet/Microsoft.AspNet.TelemetryCorrelation/issues/21#issuecomment-508535397

我的答案是一個遲到的答案,但它可能會幫助其他人。

當我在 iis 中的默認網站內使用應用程序時,我也面臨同樣的問題。 請從 root 中刪除所有 .net 文件(在我的情況下,root 是默認網站)然后它就會工作。

您可以使用 NugetPackage Manager 並瀏覽Microsoft.AspNet.TelemetryCorrelation並安裝它。

斯坦利。

如果我理解正確,我會推薦以下內容:

導航到完美運行的 WebForms 實例。 在該目錄中搜索包含“遙測”一詞的文件。 您應該找到幾個 .dll。

在不起作用的 WebForms 目錄中執行相同的搜索。 你應該找到注意或更少的文件。

我會將“遙測”文件從工作實例復制到損壞的實例(與目錄匹配),然后看看會發生什么。 !?

根據錯誤,代碼試圖加載丟失的文件。 -- 無法加載文件或程序集。(FileNotFoundException)

所以我找到了一個SO Question ,它展示了如何禁用 ApplicationInsights。 這樣做並沒有真正解決問題,但后來我進入並刪除了 Nuget 包和項目根目錄下的配置文件中的所有跡象。 完成后,錯誤不再發生。

在我的情況下,我必須為我的 .vs 目錄中的站點清理我的 applicationhost.config 文件,我認為在其他答案中提到過。

我配置了一個不同的根“/”路徑,這似乎是沖突的根源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM