卸载Microsoft ASP.NET SignalR,没有跟踪

时间:2015-09-24 04:51:25

标签: c# asp.net asp.net-mvc signalr nuget

几天前,当我想在项目中使用SignalR时,我使用Package Manager控制台安装了Microsoft.AspNet.SignalR。

  

安装包Microsoft.AspNet.SignalR

我找到了另一个更简单的解决方案,解决了在项目中不再需要SignalR的问题。我卸载了包裹:

  

卸载 - 打包Microsoft.AspNet.SignalR

运行上述命令后,我确实注意到Microsoft.AspNet.SignalR文件中已删除了包package.config

我假设包的任何更改都是在项目中进行的,它会使用uninstall命令自动清理。

然而,在我看到控制台日志中的一些错误后的第二天。

  

WebSocket连接到' ws:// localhost:61135 / signalr / reconnect?transport = webSockets& messageId = d-74CFF57F-B%2C0%7CF%2C0%7CD%2C0%7CG%2C1& clientProtocol = 1.5安培; connectionToken = moGkKaoibXu6xg4srnQoGTdxp3axLXQ5h5guoaVYP25MgSKutfN8D%2FyQcJhXamlWjnAhBDIPMjWUEoM9W3%2BP6SQcoQ98jwuiV7lox%2BMNfgyx2x0FOlj6%2BO2PcQ%2Fl3WgwYsbQd7J%2FL1XFVe3yOvNuzw%3D%3D&安培; connectionData =%5B%7B%22name%22%3A%22notificationhub%22%7D%5D&安培; TID = 4'失败:WebSocket握手期间出错:意外响应代码:502

我觉得虽然我不再在JS中初始化集线器,但集线器初始化代码仍然在某处运行。我删除了作为添加SignalR的一部分添加的StartUp.cs。跑完应用程序并在浏览器上发现this错误。

然后我调查了我的代码库中还剩下什么,发现SignalR确实留下了很多依赖包和代码文件。

比较我的package.config文件,我有以下包安装命令的结果:

    + <package id="Microsoft.AspNet.SignalR.Core" version="2.2.0"
    targetFramework="net45" />
    + <package id="Microsoft.AspNet.SignalR.JS" version="2.2.0"
    targetFramework="net45" />
    + <package id="Microsoft.AspNet.SignalR.SystemWeb" version="2.2.0"
    targetFramework="net45" />
    + <package id="Microsoft.Owin" version="2.1.0" targetFramework="net45" />
    +  <package id="Microsoft.Owin.Host.SystemWeb" version="2.1.0" targetFramework="net45" />
    + <package id="Microsoft.Owin.Security" version="2.1.0" targetFramework="net45" />

问题1

我是否必须逐个手动卸载这些软件包中的每一个?有什么捷径吗?

问题2

即使在卸载后,脚本文件夹中也有js文件,我不得不手动删除它。这真的需要吗?

jquery.signalR-2.2.0.js 
jquery.signalR-2.2.0.min.js

这是SignalR包的问题还是我做错了面对这次浪费情况?

1 个答案:

答案 0 :(得分:7)

您需要卸载包含依赖项的包以删除依赖项。

  • 使用VS UI(在解决方案或项目的属性中管理包)
  • NuGet Powershell Reference

    中添加-RemoveDependencies
    Uninstall-Package Microsoft.AspNet.SignalR -RemoveDependencies
    

(要退出当前状态,您可能需要安装软件包,而不是使用依赖项卸载)。