SignalR 应用程序无法在 IIS 下运行

2023-12-01

我正在尝试在 Visual Studio 2012 中构建 SignalR 应用程序。我的问题是它在 Visual Studio 调试下运行良好(在 Windows 7 上使用 Visual Studio 2012),但是当我尝试在 Windows Server 2012 上的 IIS 8 上部署该应用程序时,该应用程序除了显示index.html 页面外什么也不做。

我决定尝试缩小问题范围是在我的代码中还是在 SignalR 中。我编译了 SignalR 教程,如下所示http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr。这在 Visual Studio 下工作得很好,但是,除了在 IIS 下显示静态页面之外,它没有执行任何其他操作。

我已经尝试过这里列出的一些方法:Signalr/Hub 未在 IIS 7 中加载,但在 Visual Studio 中正常工作,但它们似乎都不起作用。


假设你真的想看index.html(即您的问题不是“显示空的index.html而不是我的聊天页面chat.html”),那么听起来当您在聊天页面中输入某些内容时,它不会在其他浏览器窗口中显示为聊天已连接到聊天。

我会尝试一些基本测试。我假设:

  • ASP.NET 已在服务器上安装并配置(如果没有,请参阅脚注)
  • SignalR 库部署到服务器(Microsoft.AspNet.SignalR.Core.dll, Microsoft.AspNet.SignalR.Owin.dll, Microsoft.AspNet.SignalR.SystemWeb.dll和其他人)。

我会尝试以下测试:

  1. Install Fiddler,或使用浏览器开发工具中的“网络”选项卡(在浏览器中按 F12)。
  2. 浏览至yourdomainnamehere.com/index.html(或者如果您已经在那里则重新加载)
  3. The network trace should show 200 (or maybe 304) status for:
    1. 您的页面index.html
    2. 正在下载 jQuery、jQuery.signalR 的 javascript 文件
  4. It should also show, crucially, the following connections with a 200 return status:
    1. signalr/hubs
    2. signalr/negotiate(带有查询字符串)
  5. And it should show an ongoing connection to
    1. signalr/connect(带有查询字符串)

So:

  • 如果您没有看到上面的 3.2,那么您就知道 javascript 文件没有被提供,因此您需要找出原因(它们是否在服务器上/您的 html 中的路径是否正确)。
  • 如果您看到了该内容,但没有看到上面的 4.1,则 ASP.NET 路由存在问题。检查您是否将此作为第一行在你的Application_Start:

    protected void Application_Start(object sender, EventArgs e)
    {
        // Register the default hubs route: ~/signalr/hubs
        RouteTable.Routes.MapHubs();
    }
    
  • 如果您看到了这一点,但没有看到 4.2 或 5.1,那么您的 javascript 存在问题,导致无法执行$.connection.hub.start()被调用的代码。

好吧,这行得通,现在怎么办?

现在你需要打开客户端登录信号器。在您的 index.html 聊天页面中,您可以看到$.connection.hub.start().done(function () {行中,添加以下内容,以便代码显示:

    $.connection.hub.logging = true;
    $.connection.hub.start().done(function () {` 

再次打开浏览器开发工具,然后切换到控制台选项卡。现在加载页面并发送聊天。查看您收到的错误消息(如果有)。成功打开页面并发送聊天消息应生成如下日志:

LOG: [12:34:56 UTC+0100] SignalR: Negotiating with '/signalr/negotiate'. 
LOG: [12:34:56 UTC+0100] SignalR: This browser doesn't support SSE. 
LOG: [12:34:56 UTC+0100] SignalR: Binding to iframe's readystatechange event. 
LOG: [12:34:56 UTC+0100] SignalR: Now monitoring keep alive with a warning timeout of 13333.333333333332 and a connection lost timeout of 20000 
LOG: [12:34:56 UTC+0100] SignalR: Triggering client hub event 'broadcastMessage' on hub 'ChatHub'. 

脚注:如何测试服务器上是否安装并配置了 ASP.NET

使用您的信号器端点网站,创建一个新页面:

  • 使其成为 aspx web 表单(或 mvc 表单)并调用它TestAspNet.aspx.
  • 进入TestAspNet.aspx,添加标签控件<asp:Label runat="server" ID="lblTest"></asp:Label>
  • 到后面的代码中,添加这段代码Page_Load: this.lblTest.Text = DateTime.Now.ToLongTimeString();

现在将其部署到您的网络服务器,然后导航到http://yourdomainnamehere.com/TestAspNet.aspx。如果这显示了当前服务器时间,则您知道服务器上安装了 ASP.NET。如果没有,那么有两个选择:

  • 服务器上的另一个网站正在使用主机标头yourdomainnamehere.com
  • 您需要在服务器上安装 ASP.NET。为此,请查看 technet 文章“在 IIS 上构建 ASP.NET 网站”,特别是“第 1 步:安装 IIS 和 ASP.NET 模块”

如果您认为另一个站点可能正在使用主机标头,那么您可以使用 powershell 在 Win Server 2102 上轻松检查这一点:

Import-Module WebAdministration
Get-WebBinding |? bindingInformation -match .*mydomainname.com.* | ft protocol, bindingInformation, ItemXPath -AutoSize

站点名称和 id 显示在结果列下方ItemXPath

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SignalR 应用程序无法在 IIS 下运行 的相关文章

  • 当 IIS 托管时,WCF 对于 nettcp 使用什么默认端口?

    我们的服务器基于 WCF 由 IIS 托管 我们使用 nettcp 作为绑定 该应用程序正在运行 但我们仍然不清楚一件事 由于我们没有在配置中指定端口号 WCF IIS 使用的默认端口是什么 在生产环境中 我们是否需要在IIS中手动为WCF
  • SignalR - HubContext 和 Hub.Context

    我是 signalR 的新手 正在阅读 API 并使用它 对 Hub 及其上下文有点困惑 那是 Hub Context is not HubContext HubContext我可以从GlobalHost ConnectionManager
  • 如何在 hypercorn 或 uvicorn 等 ASGI 服务器上运行 Windows IIS?

    我有一个用 python 编写的基于 api 的 Web 应用程序FastApi https fastapi tiangolo com 它使用Uvicorn https www uvicorn org or 超级玉米 https pgjon
  • 与 .Net 中的 IIS SMTP 服务器进行有意义的交互

    我们的公司每周都会向大量订阅者发送新闻通讯 当公司还很年轻时 在我加入之前 他们使用了一些群发邮件程序的 免费 版本 花了六个小时才发送 5K 封邮件 并且违反了互联网上的每一次反向 DNS 检查 我将其升级为定制的 Net 小部件 该小部
  • IIS:添加功能

    我需要使用 IIS 7 0 中的 IP 地址和域限制功能编辑 IP 规则 但在我的 Windows 7 计算机上 我的 IIS 中不存在此功能 有谁知道如何向 IIS 添加此功能 我无法在任何地方找到下载 或 IIS 中用于添加功能的部分
  • 如何使用IIS压缩所有文件

    IIS compression has been enabled 以下是web config的http压缩标签
  • IIS ARR - 反向代理的 URL 重写 - 如何发送 HTTP_HOST

    尝试在多个后端 IIS 服务器前面使用 AAR 作为反向代理 分配给运行 IIS AAR 的服务器的一个公共 IP 地址 然后出站 URL 重写规则设置为重定向到以下之一 多个后端服务器 具体取决于主机名 有点工作 但总是返回后端服务器默认
  • 全局主题目录的 iis 快速路径

    我正在使用 Visual Studio 2010 SP1 ASP NET Webforms Framework NET 3 5 和IIS 快递 也称为 WebMatrix 我在 Visual Studio 中使用我的网站收到以下编译错误 T
  • 无法将 Visual Studio 项目中的多个文件提交到 subversion

    几周以来 我在使用 Subversion 时遇到了一些问题 当我尝试从 Visual Studio 2017 项目提交文件时 有些文件无法提交到我的 Visual SVN 服务器 准确地说 项目文件夹中的所有文件 如 cs config c
  • Windows 身份验证在 IISExpress 中有效,但在 IIS 中无效

    我有一个奇怪的问题 我正在 Visual Studio 2013 中使用最新的 MVC5 我正在尝试创建一个托管匿名 API 的站点以及一个需要通过 Windows 身份验证的 Intranet 域凭据的管理仪表板 当通过 IIS Expr
  • 如何在 IIS 8 中远程停止/启动应用程序池

    注意 每条线使用一行 我在 IIS 6 中使用了这些命令 它们工作得很好 Start get wmiobject namespace root MicrosoftIISv2 computername REMOTE SERVER class
  • 使用 MSBuild 12 构建 MVC 4.0 项目时“任务失败,因为未找到 AXImp.exe”

    我正在尝试使用 CruiseControl Net 和 MSBuild 设置构建服务器 但是 它失败并出现错误 C Builds PremiumStore checkout PremiumStore sln default target 1
  • 在没有 IIS 的计算机中打开设置为 IIS 目录的 Web 项目,指向嵌入式服务器

    我可以在TFS中打开一个Web项目 但是 在我的 QA 环境中 我必须将其更改为使用 IIS 在我的本地开发环境中 我没有IIS 无法安装它 新的公司规则拒绝我进行 QA 访问 并且我无法打开我的 Web 项目来在我的计算机中修复它 当我打
  • 让 WSO2 IOT 服务器作为 Windows 服务运行

    我在Server 2012R2上安装了WSO2 IOT Server 我安装了 YAJSW 包装器并按照 WSO2 说明进行配置 当我启动 runConsole bat 来配置 Windows 服务时 出现以下错误 我设置了 JAVA HO
  • 如果用户不活动,SignalR 会发生什么?

    我想知道如果用户不活动会发生什么 想象一下用户连接到集线器 连接已建立 但用户没有刷新页面或一个小时没有执行任何操作 无论如何连接都会保持吗 那过了这个时间还可以推送消息给他吗 SignalR 发送 keep alive 消息 即使没有其他
  • CSS、Javascript 和图像的长度为零

    我正在尝试将 ASP NET MVC 1 0 Visual Studio 2008 项目移植到 ASP NET MVC RC 2 Visual Studio 2010 该项目 并且一直 在 IIS 7 上运行 动态内容 由控制器提供的所有内
  • IIS 如何识别请求的是哪个站点?

    如果我在一台服务器上托管多个站点 并且 dns 服务器将不同的域名解析到同一地址 这是服务器的名称 那么 IIS 如何知道最终请求的是哪个站点 因此 客户端输入我的 1 站点地址 gt myrandomsite mydomain com 然
  • 如何在 IIS 10 上禁用 HTTP/2

    IIS 10 声称完全支持 HTTP 2 我想知道是否有办法在 IIS 10 上关闭 HTTP 2 要在 Windows 10 HTTP SYS 上禁用 HTTP 2 请在 Windows 10 桌面上的 HKEY LOCAL MACHIN
  • Windows Server 2012 中的 Oracle 11gR2 安装

    安装时甲骨文11gr2它给出了错误 INS 13001 环境不符合最低要求 我查看了 Oracle 网站上给出的先决条件 但似乎一切都在那里 生成了这个日志文件 但我无法知道它在寻找什么 sing paramFile E win64 11g
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序

随机推荐

  • NASM:声明字符串时“操作数后应有逗号、冒号、装饰符或行尾”

    我正在尝试使用 NASM 制作汇编代码程序 但由于某种原因它一直给我一个错误 它说在我声明一个字符串后需要一个逗号 冒号 装饰符或行尾 但我不明白这怎么会成为一个问题 请告知 section text global main main mo
  • 未捕获的类型错误:implode():参数 #1 ($pieces) 必须是数组类型,给定字符串

    我在用implode 像这样 var implode dataColumns 并得到一个奇怪的错误 未捕获的类型错误 implode 参数 1 pieces 必须是数组类型 给定字符串 该错误消息不是很清楚并且具有误导性 据我所知 该消息将
  • SQLSTATE[23000]:违反完整性约束:1048 列“post”不能为空

    我有这个代码 但是当我尝试这些代码时 我得到 SQLSTATE 23000 违反完整性约束 1048 列 post 不能为空 这个错误 我找不到任何解决方案 我尝试了另一种功能 它们可以工作 但这个功能不起作用 gt
  • 如何使用 C++ 接口从 AVRO 文件读取数据?

    我正在尝试编写一个简单的程序来从一堆 AVRO 文件中提取一些数据 每个文件的架构可能不同 因此我想使用 C 接口一般性地读取文件 即无需预先生成然后在每个文件的架构中进行编译 我一直在尝试遵循generic cc例如 但它假设一个单独的模
  • 在sql准备语句中使用LIKE子句,spring,SimpleJDBCTemplate

    我有以下 sql 准备语句 SELECT FROM video WHERE video name LIKE 我使用 spring 和 jdbc 我有一个方法 其中 term 是搜索项 sjt 是 SimpleJdbcTemplate Vid
  • Google Analytics 中的正则表达式 AND 运算符

    我正在尝试使用正则表达式将 Google Analytics 中的 2 条规则合并为 1 条 我有以下广告活动名称 USA Apparel search USA Shoes search USA Accessories search USA
  • 如何在Android单元测试中模拟Bundle方法?

    我有一个处理片段创建的控制器类 让我们像下面这样说 public class FragmentController public static Fragment newInstance String title int total retu
  • 从网页链接打开客户端的桌面应用程序

    是否可以启动客户端桌面应用程序 例如Adobe Reader 任何游戏或任何其他软件来自网络 我有一个链接如何从网页 asp net 启动 EXE 其中之一已经让使用java脚本打开记事本 桌面应用程序 这仅限于IE 以类似的方式 我想在我
  • 更改 Eclipse Getters Setters 语法

    是否可以让 eclipse 生成 GetVar1 而不是 getVar1 大写G 我非常怀疑这一点 因为这违反了正常的 Java 方法命名约定和 JavaBeans 属性规则 I would 强烈地 强烈地建议您遵守 Java 命名约定 为
  • R正则表达式获得部分匹配

    我想使用 stri replace all regex 替换字符串但失败 我想知道是否还有其他方法可以克服它 感谢任何给我帮助的人 尝试 首先 gt library string gt a lt c abc2 xycd2 mnb345 tu
  • 用于要求所有元素的 Typescript 类型保护

    有没有办法要求带有打字稿的数组元素 这样我就可以拥有 type E keyof T Number of properties in T is unknown 令 T 的定义如下例所示 interface T el1 number el2 n
  • 为给定嵌套变量的出现创建编号序列

    我希望向数据集中添加一个变量 该变量对某个分组变量出现的实例进行排序 例如 ids lt c rep 1 4 rep 2 6 rep 3 2 我想要另一个变量来计算每个 id 出现的实例数 创建一个像这样的向量 1 2 3 4 1 2 3
  • 从命令行将参数传递给可执行文件[重复]

    这个问题在这里已经有答案了 我正在尝试从命令行将参数传递给 Fortran 可执行文件 用 C 语言实现此目的的示例程序是 取自here include
  • 由于下列问题,存档提交失败。错误 ITMS-90039

    我从 xcode 将应用程序上传到应用程序商店时遇到错误 类型不匹配 info plist 键 UILaunchImageName 的值不是该键所需的类型 更新 xcode 7 后出现此错误 只需从 info plist 文件中删除 UIL
  • 如何解决点击事件被触发两次的问题?

    我有一个一页应用程序 它使用backbone js 通过鼠标触发一次单击事件 通过触摸设备触发点击事件两次 取消绑定一键事件会在触摸设备上停止 我不知道从哪里开始寻找 这是JS classy on click button function
  • Python基于多种条件的随机样本选择

    我想在 python 中从以下 df 中进行随机样本选择 使得结果样本中至少 65 的颜色应为黄色 并且所选数量的累积总和应小于或等于 18 原始数据集 Date Id color qty 02 03 2018 A red 5 03 03
  • EF 4.1:为什么将常量转换为变量会导致额外的子查询?

    今天我发现实体框架向它生成的 SQL 添加了不必要的子查询 我开始挖掘我的代码 试图缩小它可能来自的范围 过了 很长 一段时间后 我查明了造成这种情况的原因 但现在我比开始时更困惑 因为我不知道为什么会导致这种情况 基本上我发现 在某些情况
  • 在 PySimpleGUI 中渲染 HTML?

    有谁知道是否可以让 PySimpleGUI 渲染 HTML 我并不想要一个成熟的浏览器 只是一个位于 PySimpleGUI 窗口中的 HTML 查看器 我知道 tkinter 有一个名为tk html widgets 我也在调查什么web
  • 就地编辑 CMS 建议 [关闭]

    Closed 这个问题是无关 目前不接受答案 我需要找到一个 非常 易于使用 对于编辑 作者 的 CMS 最好使用类似的就地编辑SiteCore 不过 我们不需要像 SiteCore 这样庞大而强大的东西 用户需要能够添加页面 使用我们在开
  • SignalR 应用程序无法在 IIS 下运行

    我正在尝试在 Visual Studio 2012 中构建 SignalR 应用程序 我的问题是它在 Visual Studio 调试下运行良好 在 Windows 7 上使用 Visual Studio 2012 但是当我尝试在 Wind