記一次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加上配置后,問題解決

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM