首页 > 解决方案 > 为什么 IIS Express 向我的一个 .Web 项目的请求发送 426 Upgrade Required 错误?

问题描述

我有一个 asp.net 应用程序。它有 7 个 .Web 项目,每个项目都在不同的端口上运行。

我能够访问每个 .Web 项目的 API 和网页,除了一个:DemandService.Web。

对于这个特定的 .Web 项目,我无法收到任何有效响应。响应代码始终为 HTTP 426 Upgrade Required,并且此响应与以下标头一起发送:服务器→WebSocket++/0.3.0-alpha4。

此外,这个 .Web 项目不再出现在运行站点的 IIS Express 列表中。

我重新获取了我的应用程序并重新启动了我的计算机。我验证了 DemandService.Web 中没有在其他 .Web 项目中找不到的未决更改。我不确定可能导致这种情况的变化。

有任何想法吗?我可以以某种方式重置我的 IIS Express 配置吗?

在此处输入图像描述在此处输入图像描述在此处输入图像描述

编辑

我卸载并重新安装了 IIS Express 10.0。现在 IIS Express 确实启动了我的 .Web 项目,我可以看到它正在运行。但是,它没有使用项目属性中指定的端口 9005,而是在 44322 上运行项目,并且可以正常工作。

为什么 IIS Express 会切换我的端口?似乎与端口 9005 配置存在一些冲突。是否有我应该重新配置的虚拟主机目录?

标签: c#asp.netwebsocketvisual-studio-2017iis-express

解决方案


果然,端口 9005 上使用的协议是 WebSockets 的事实表明响应不是来自 IIS Express,因此我可以假设它不是项目或 IIS Express 配置问题。

运行netstat -a -b显示使用我计算机上的端口的所有应用程序。我检查了哪个进程正在使用端口 9005,应用程序是 CiscoVideoGuardMonitor.exe。

该软件是 DirectTV 播放器附带的 StreamingDRM 软件。我上周安装了这个来观看篮球比赛。

卸载此软件后,我的端口又回来了,这使 IISExpress 能够正确启动我的服务,现在我可以访问我的 .Web 项目。


推荐阅读