• 记一次SignalR的部署错误问题


    前不久的工作中,需要集成signalr和vue实现一个消息推送的前端展示页面,集成倒是很顺利,nuget和npm就解决了问题,但接下来的部署上遇到了几个问题,需要记录一下:

    问题1 : 集成了redis缓存链接,在部署时未安装redis,导致signalr一直启动不起来,但又明确的提示错误。

                在开发时使用了redis缓存,并配置了signalr使用redis,部分方法在使用上没有用到redis,而部署时的业务不需要redis,因此未安装redis,运行时一直出现signalr连接不上的问题,

       查了很多资料都是signalr2.0 的版本的错误,最后尝试去掉

     //使用redis              GlobalHost.DependencyResolver.UseRedis(scaleoutConfiguration);

       果然是这里导致,页面可以正确的连接signalr服务器了,未用到redis,不能再启动时配置signalr使用redis

    问题2 : 在本机IIS上发布运行正确,更换到其他人的电脑IIS发现不能链接signalR服务端,错误

    vendor.js:45 GET http://localhost:6677/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22remindhub%22%7D%5D&_=1543892771079 404 (Not Found)send @ vendor.js:45d.extend.ajax @ vendor.js:45e.transports._logic.ajax @ vendor.js:54e.fn.e.start @ vendor.js:54F._.deferredStartHandler @ vendor.js:54d.event.dispatch @ vendor.js:45s.handle @ vendor.js:45
    ISMS.js:1 Error: Error during negotiation request.(…)
    ISMS.js:1 Could not connect
    ISMS.js:1 disconnected
    ISMS.js:1 reconnect
    vendor.js:54 Uncaught Error: SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'></script>.
    

     因为本机和部分电脑的发布是正常的,唯独单独的那台服务器运行会报错,推测是环境的问题,经过搜索资料发现需要增加以下配置

      <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true" />
      </system.webServer>

    试着在出错的服务器的web.config加上配置后,问题解决

     

  • 相关阅读:
    Delphi中的钩子函数HOOK详解
    Delphi好书推荐
    Windows通知栏图标高级编程概述
    关于开机自动运行程序和自动启动服务
    如何在一个窗体中嵌入另一个窗体
    三层中如何在服务器与客户端之间传输自定义的'Record'类型数据的例子
    Delphi中的钩子函数HOOK详解
    STL(转)
    默认参数(c++)
    STL2
  • 原文地址:https://www.cnblogs.com/dpwow/p/10063334.html
Copyright © 2020-2023  润新知