未能加载文件或程序集“Microsoft.aspNet.TelemetryCorrelation”或它的某一个依赖项,系统找不到指定的文件

chhqkbe1  于 2023-02-01  发布在  .NET
关注(0)|答案(6)|浏览(458)

我在IIS 7(本地Windows 10 Pro)下有两个Web应用程序。在根目录下是一个MVC .Net Version 4.7.1。到目前为止,这里的一切似乎都运行良好。但是,在默认站点根目录下设置为单独应用程序的是一个较旧的.Net Version 4.0 WebForms应用程序。
版本4应用程序是在Visual Studio 2015中构建的,MVC是使用Visual Studio 2017构建的。我有版本4 WebForms应用程序在不同的网站下运行,使用相同的设置,它运行良好。它只在根节点下作为不同的应用程序运行时有问题。此外,我已经尝试在两个应用程序上使用不同的应用程序池,以及使用相同的应用程序池,错误没有变化。
我也试过卸载ApplicationInsights并禁用它,我得到了同样的问题。
[未找到文件异常:未能加载文件或程序集“Microsoft.aspNet.TelemetryCorrelation”或它的某个依赖项。系统找不到指定的文件。] System.RuntimeTypeHandle.GetTypeByName(字符串名称、布尔值出错时抛出、布尔值忽略大小写、布尔值仅反射、堆栈爬网标记句柄堆栈标记、IntPtr pPrivHostBinder、布尔值加载类型FromPartialName、堆栈上对象句柄类型)+0系统.运行时类型句柄.获取类型名称(字符串名称,布尔值出错时抛出,布尔值忽略大小写,布尔值仅反射,堆栈爬网标记和堆栈标记,IntPtr pPrivHostBinder,布尔值从部分名称加载类型)+95系统.类型.获取类型(字符串类型名称,布尔值错误时抛出,布尔值忽略大小写)+64系统.Web.编译.生成管理器.获取类型(字符串类型名称,布尔值错误时抛出,布尔值忽略大小写)+60系统.Web.配置.配置实用程序.获取类型(字符串类型名称,字符串属性名称,配置元素配置元素,XmlNode节点,布尔值检查AptcaBit,布尔值忽略大小写)+49
[配置错误异常:未能加载文件或程序集“Microsoft.aspNet.TelemetryCorrelation”或它的某个依赖项。系统找不到指定的文件。] System.Web.Configuration.ConfigUtil.GetType(字符串类型名称,字符串属性名称,配置元素配置元素,XmlNode节点,布尔检查AptcaBit,布尔忽略大小写)+558系统.Web.配置.配置实用程序.获取类型(字符串类型名称,字符串属性名称,配置元素configElement,布尔检查AptcaBit)+30系统.Web.配置.公用.模块条目.安全获取类型(字符串类型名称,字符串属性名称,配置元素配置元素)+57系统. Web.配置.公用.模块入口.. ctor(字符串名称、字符串类型名称、字符串属性名称、配置元素configElement)+57系统.Web.HttpApplication.构建集成模块集合(列表'1模块列表)+182系统.Web.HttpApplication.获取模块集合(IntPtr应用程序上下文)+1086系统.Web. Http应用程序.向IIS注册事件订阅(IntPtr应用程序上下文、HttpContext上下文、方法信息[]处理程序)+120系统.Web.HttpApplication.初始化特殊(HttpApplicationState状态、方法信息[]处理程序、IntPtr应用程序上下文、HttpContext上下文)+169系统.Web.HttpApplicationFactory.获取特殊应用程序示例(IntPtr appContext,HttpContext上下文)+372系统.Web.主机.管道运行时.初始化应用程序(IntPtr appContext)+329
异常(0x80004005):未能加载文件或程序集“Microsoft.AspNet.TelemetryCorrelation”或它的某个依赖项。系统找不到指定的文件。] System.Web.HttpRuntime.第一请求初始化(HttpContext上下文)+525 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext上下文)+118 System.Web.HttpRuntime.进程请求通知专用(IIS7WorkerRequest wr,HttpContext上下文)+708

ygya80vv

ygya80vv1#

在我的例子中,子应用没有使用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
我的回答是一个迟来的回答,但它可能会帮助别人。

w6mmgewl

w6mmgewl2#

您可以使用NugetPackage管理器浏览Microsoft.AspNet.TelemetryCorrelation并安装它。

l7wslrjt

l7wslrjt3#

我也面临同样的问题,当我在iis中使用默认网站内的应用程序时。请从根目录中删除所有.net文件(在我的情况下,根目录是默认网站),然后它就会工作。

3bygqnnd

3bygqnnd4#

史丹利
如果我没理解错的话,我建议你:
导航到运行良好的WebForms示例。在该目录中搜索包含单词“遥测”的文件。您应该会找到几个.dll文件。
在不起作用的WebForms目录中执行相同的搜索。您应该找到noteor更少的文件。
我会将“遥测”文件从工作示例复制到损坏的示例(与目录匹配),看看会发生什么。
根据错误,代码尝试加载缺少的文件。--未能加载文件或程序集。(FileNotFoundException)

n9vozmp4

n9vozmp45#

所以我找到了一个SO Question,它显示了如何禁用ApplicationInsights。这样做实际上并没有解决这个问题,但后来我进入并删除了Nuget包和我项目根目录下的配置文件中的所有迹象。一旦我完成了这一操作,错误就不再发生了。

acruukt9

acruukt96#

在我的例子中,我不得不清理我的.vs目录中的站点的applicationhost.config文件,我想这在其他答案中已经提到了。
我配置了一个不同的根“/”路径,看起来它可能是冲突的来源。

相关问题