- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我很难让 websocket 在 Azure Web 应用程序上运行,我目前正在将 Node 应用程序从 Azure 移植到 Go 应用程序。
WebSocket 已在门户上启用,这是我的 web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
<system.webServer>
<webSocket enabled="false" />
<handlers>
<add name="httpplatformhandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
</handlers>
<httpPlatform stdoutLogEnabled="true" processPath="d:\home\site\wwwroot\v-0.0.10.exe"
arguments=""
startupTimeLimit="60">
<environmentVariables>
<environmentVariable name="GOROOT" value="d:\home\site\wwwroot\go" />
</environmentVariables>
</httpPlatform>
</system.webServer>
</configuration>
当然,在本地它工作得很好。起初我只尝试了这个示例:
package main
import (
"code.google.com/p/go.net/websocket"
"io"
"net/http"
"os"
)
func echoHandler(ws *websocket.Conn) {
io.Copy(ws, ws)
}
func main() {
http.Handle("/echo", websocket.Handler(echoHandler))
http.Handle("/", http.FileServer(http.Dir(".")))
err := http.ListenAndServe(":"+os.Getevn("HTTP_PLATFORM_PORT"), nil)
if err != nil {
panic("ListenAndServe: " + err.Error())
}
}
在客户端,我只是尝试连接:
var ws = new WebSocket("url")
ws.onopen = function() { ws.send("test"); }
ws.onmessage = function(e) { console.log(e.data); }
部署在Azure上时,readystate始终保持为0,onopen永远不会被调用。最终失败并提示连接错误:
WebSocket connection to 'wss://***.azurewebsites.net/echo' failed: Error during WebSocket handshake: Unexpected response code: 500
我什至尝试使用 Gorilla Websocket 示例来查看 Go 扩展包是否是原因。
我尝试过的事情:
删除了 <webSocket enabled="false" />
来自 web.config [同样的问题,但似乎需要更长的时间才会发生
添加标准 http.HandleFunc
提供“标准”页面并且工作正常。
我有一些 Go 应用程序部署到 Azure,这只是我需要使用 websocket 的第一个应用程序,我想知道我做错了什么/不理解。
任何帮助将不胜感激
最佳答案
我引用了您的代码并创建了一个示例,它对我有用。我没有执行任何自定义 web.config,而是使用来自 Azure 部署脚本的默认 web.config。
关于Azure WebSocket 无法与 Go httpPlatformHandler 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33675348/
我无法再使用 ASP.NET RC1 和 HttpPlatformHandler 创建日志文件。 这是事件日志中的警告: The description for Event ID 1004 from
我很难让 websocket 在 Azure Web 应用程序上运行,我目前正在将 Node 应用程序从 Azure 移植到 Go 应用程序。 WebSocket 已在门户上启用,这是我的 web.c
我正在尝试使用 HttpPlatformHandler(1.2 版)在 IIS(IIS 10.0)中运行一个基本的 Suave 应用程序。 当我让它返回单个 WebPart 时,例如 (OK "Hel
我使用 ASP.NET Core RC1 作为服务器来托管我的 Aurelia应用程序。我的应用程序工作得很好,但最近几周发生了一些变化,导致该应用程序在 Azure 上托管时不再加载。我不确定这是我
我使用 ASP.NET Core RC1 作为服务器来托管我的 Aurelia应用程序。我的应用程序工作得很好,但最近几周发生了一些变化,导致该应用程序在 Azure 上托管时不再加载。我不确定这是我
我正在尝试在 IIS 上运行 Rails,我遵循了提到的步骤 here经过斯科特·汉塞尔曼。 这里有一些可能有用的信息: Rails 版本:5.1.4 ruby 版本:2.3.3 按照设置步骤操作后,
目前我有提供 SSE 作为服务的程序,我必须在 IIS 上部署。但它不能正常工作,这是我在没有 IIS 的情况下运行 .exe 时的结果。 data: Hello, world 但是当它在 IIS 后
我正在尝试在 iis 上运行“Hello World”示例 node.js 服务器: var http = require('http'); var server = http.createServe
从 ASP.NET 5 beta 7 升级到 RC1 后,尝试从 Visual Studio 中启动 IIS Express 中的 Web 应用程序以“尝试确定托管应用程序的 DNX 进程的进程 ID
当我尝试使用 IIS 服务器 v7.5 启动我的 ASP.Net Core 应用程序时出现以下错误...我已成功将网站(Visual Studio 中的文件系统选项)发布到特定目录。它从 approo
我是一名优秀的程序员,十分优秀!