c# - 在控制台应用程序中自托管 SignalR,部署时抛出无法加载文件或程序集“Microsoft.AspNet.SignalR.Core...”

标签 c# asp.net .net signalr visual-studio-2017

我在控制台应用程序中自行托管 SignalR。如果计算机上安装了 Visual Studio,则代码可以正常工作。但是,当我构建并发送到没有 Visual Studio 的机器时,代码在尝试启动 signalR 时失败,并给出以下错误。

Could not load file or assembly 'Microsoft.AspNet.SignalR.Core, Version=2.2.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)

使用Visual Studio 2017编译代码。

包配置

<packages>
<package id="Microsoft.AspNet.Cors" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.SignalR.Core" version="2.2.2" targetFramework="net452" />
  <package id="Microsoft.AspNet.SignalR.SelfHost" version="2.2.2" targetFramework="net452" />
  <package id="Microsoft.IdentityModel.Clients.ActiveDirectory" version="3.13.9" targetFramework="net452" />
  <package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin" version="3.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Cors" version="3.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Diagnostics" version="3.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Host.HttpListener" version="3.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Hosting" version="3.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Security" version="3.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.SelfHost" version="3.1.0" targetFramework="net452" />
  <package id="NETStandard.Library" version="1.6.1" targetFramework="net452" />
  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net452" />
  <package id="Owin" version="1.0" targetFramework="net452" />
  <package id="RestSharp" version="105.2.3" targetFramework="net452" />
  <package id="sqlite-net-pcl" version="1.3.3" targetFramework="net452" />
  <package id="SQLitePCLRaw.bundle_green" version="1.1.5" targetFramework="net452" />
  <package id="SQLitePCLRaw.core" version="1.1.5" targetFramework="net452" />
  <package id="SQLitePCLRaw.lib.e_sqlite3.linux" version="1.1.5" targetFramework="net452" />
  <package id="SQLitePCLRaw.lib.e_sqlite3.osx" version="1.1.5" targetFramework="net452" />
  <package id="SQLitePCLRaw.lib.e_sqlite3.v110_xp" version="1.1.5" targetFramework="net452" />
  <package id="SQLitePCLRaw.provider.e_sqlite3.net45" version="1.1.5" targetFramework="net452" />
  <package id="System.Collections" version="4.3.0" targetFramework="net452" />
  <package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net452" />
  <package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net452" />
  <package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net452" />
  <package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net452" />
  <package id="System.Globalization" version="4.3.0" targetFramework="net452" />
  <package id="System.IO" version="4.3.0" targetFramework="net452" />
  <package id="System.IO.Compression" version="4.3.0" targetFramework="net452" />
  <package id="System.Linq" version="4.3.0" targetFramework="net452" />
  <package id="System.Linq.Expressions" version="4.3.0" targetFramework="net452" />
  <package id="System.Net.Http" version="4.3.2" targetFramework="net452" />
  <package id="System.Net.Primitives" version="4.3.0" targetFramework="net452" />
  <package id="System.ObjectModel" version="4.3.0" targetFramework="net452" />
  <package id="System.Reflection" version="4.3.0" targetFramework="net452" />
  <package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net452" />
  <package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net452" />
  <package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net452" />
  <package id="System.Runtime" version="4.3.0" targetFramework="net452" />
  <package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net452" />
  <package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net452" />
  <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net452" />
  <package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net452" />
  <package id="System.Text.Encoding" version="4.3.0" targetFramework="net452" />
  <package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net452" />
  <package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net452" />
  <package id="System.Threading" version="4.3.0" targetFramework="net452" />
  <package id="System.Threading.Tasks" version="4.3.0" targetFramework="net452" />
  <package id="System.Threading.Timer" version="4.3.0" targetFramework="net452" />
  <package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net452" />
  <package id="System.Xml.XDocument" version="4.3.0" targetFramework="net452" />
</packages>

应用程序配置

<configuration>
  <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Cors" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

最佳答案

事实证明,我只需要在配置文件中添加一行,一切正常。要解决此问题,请添加条目“loadFromRemoteSources”,如下所示。

<configuration>  
   <runtime>  
      <loadFromRemoteSources enabled="true"/>  
   </runtime>  
</configuration> 

https://learn.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/runtime/loadfromremotesources-element

关于c# - 在控制台应用程序中自托管 SignalR,部署时抛出无法加载文件或程序集“Microsoft.AspNet.SignalR.Core...”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44646119/

相关文章:

C# 泛型和反射

c# - Azure 存储队列性能不佳 - 只有 200 RPS

c# - 类似于 ASP.NET 按钮的 HTML 按钮

c# - 在 asp.net 中对 gridview 列进行排序

中继器中的 ASP.NET RadioButtonList?

c# - 如何创建调度程序或将对象与调度程序关联到 BeginInvoke 调用

asp.net - 如何将 IConfigurationRoot 或 IConfigurationSection 转换为 JObject/JSON

c# - ASP.NET MVC : Validation messages set in TryUpdateModel not showning ValidationSummary

c# - 升级到 VS 2017 15.6.0,现在 Directory.GetCurrentDirectory() 返回\bin\Debug\netcoreapp2.0

c# - StructureMap 无法识别 TheCallingAssembly