当前位置: 首页 > 知识库问答 >
问题:

无法加载文件或程序集System.Web.Http。发布到Azure网站后的WebHost

尉迟宪
2023-03-14

我创建了一个Web项目,它在Visual Studio中运行良好。但是,我在将其发布到Azure网站后收到了以下错误。是什么导致了这个问题?

未能加载文件或程序集系统。Web.Http.WebHost,Version=5.0.0.0,Culture=neutral,public key token = 31bf 3856 ad 364 e 35 '或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自HRESULT的异常:0x80131040)

说明:执行当前 Web 请求期间发生未经处理的异常。请查看堆栈跟踪,了解有关错误及其在代码中起源位置的详细信息。

异常详细信息:System.IO.FileLoadException:无法加载文件或程序集“System.Web.Http.WebHost,版本=5.0.0.0,区域性=中性,公钥令牌=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT的例外:0x80131040)

源错误:

执行当前web请求期间生成了未处理的异常。关于异常的起源和位置的信息可以使用下面的异常堆栈跟踪来识别。

程序集加载跟踪:以下信息有助于确定程序集的系统。未能加载Web.Http.WebHost,Version=5.0.0.0,Culture=neutral,public key token = 31bf 3856 ad 364 e 35。

WRN:程序集绑定日志记录已关闭。若要启用程序集绑定失败日志记录,请设置注册表值 [HKLM\Software\Microsoft\Fusion!启用日志] (DWORD) 到 1。注意:程序集绑定失败日志记录会降低一些性能。若要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!启用日志]。

以下是web的一部分。配置文件。

  <system.web>
    <customErrors mode="Off"/>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="2880" />
    </authentication>
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
  <handlers>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers></system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" />
        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

共有3个答案

孙永嘉
2023-03-14

我遇到了同样的问题,我通过将以下库的 CopyLocal 设置为 true 来解决它:

System.Web.Http.dll
System.Web.Http.WebHost.dll
System.Net.Http.Formatting.dll

我必须补充一点,我使用MVC4和NET 4

黎震博
2023-03-14

如果您仍在寻找答案,请尝试检查此问题线程。它帮助我解决了类似的问题。

编辑:帮助我的解决方案是按照Pathoschild的建议,从NugGet包管理器运行Update-Package Microsoft.AspNet.WebApi - reinstall。然后我不得不删除我的 .suo 文件并重新启动 VS,正如谢尔盖·奥西普丘克在此线程中建议的那样。

端木明贤
2023-03-14

发布的(部署的环境)中缺少dll。这就是为什么它在本地即Visual Studio中工作,而在Azure网站环境中不工作的原因。

只需在程序集(系统)的属性中执行< code>Copy Local = true。Web.Http.WebHost)然后进行重新部署,应该可以正常工作。

如果您遇到类似的错误,即缺少其他程序集,请将该程序集设为 copylocal=true 并重新部署,如果您不确定其依赖项,请迭代重复此操作。

 类似资料:
  • 我根据。http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2 我明白错误了。其他人有这个错误吗? 第48行:第49行:第50行:}第51行:第52行:protected void Application_Begin

  • 对于可以与Azure函数一起使用的包是否有任何限制。我已经尽可能多地研究了,但似乎并不是这样,然而,当我试图创建一个引用包“Microsoft.ServiceFabric”的Azure函数时,我得到了以下错误: corelib:执行函数时异常:ScaledOwnServiceFabrics。FunctionApp2:无法加载文件或程序集“System.Fabric,版本=6.0.0.0,Cultu

  • 我试图托管一个webproject,但是当服务器试图编译它时,我得到以下错误: 未处理的异常:System.io.FileLoadException:无法加载文件或程序集“Microsoft.codeAnalysis,版本=1.1.1.0,Culture=Neutrice,PublicKeyToken=31BF3856AD364E35”或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。(来

  • 我有一个网站,我已经使用了很长时间,没有任何问题。我做了一些改进来提高性能,包括将数据存储在缓存中,以及改变网站与数据库的交互方式。然而,自从将网站发布到它的位置后,现在每当我试图加载它时,它都返回一个空白页。 每当我尝试加载它时,我都会收到来自该站点的错误电子邮件,显示“外部组件已引发异常”的异常消息。我有几个地方可以发送错误电子邮件,它们都在触发,每个地方提供的堆栈跟踪略有不同,如下所示。 堆

  • 我在我的项目中使用的是umbraco 4.11.3。我的项目在Windows 7上运行良好,并在visual studio 2012上运行。但它在Win 8中从visual studio 2012运行时并不工作! 错误是: 无法加载文件或程序集“System.Web”。Mvc,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e

  • 问题内容: 我正在使用c#和数据库MySQL开发桌面应用程序。当我在计算机上安装其安装程序时,它可以正常工作,但是当我在其他计算机上安装它的安装程序时,尝试访问数据库时会出现以下异常。我用来与MySQL通信。 无法加载文件或程序集“ MySql.Data,版本= 6.2.2.0,区域性=中性,PublicKeyToken = c5687fc88969c44d”或其依赖项之一。该系统找不到指定的文件