XMLHttpRequest:网络错误0x2efd,由于错误00002efd无法完成操作

时间:2013-03-05 12:20:14

标签: javascript networking azure xmlhttprequest socket.io

我正在使用socket.io来实现windows azure项目。奇怪的是,socket.io服务器在我刚部署Web角色时启动,但是当我部署整个云项目时,socket.io服务器没有启动,我收到此错误 -

"SCRIPT7002: XMLHttpRequest: Network Error 0x2efd, Could not complete the operation due to error 00002efd."

我完全不知道这意味着什么。任何人都可以帮我解决这个问题吗?我一整天都在为此烦恼。

SocketClient.html

<script>
var socket = io.connect('http://127.0.0.1:4001');
socket.on('news', function (data) {
    console.log(data);       
});

$(function () {
    $("#sendresponse").bind("click", function () {
     socket.emit('server', 'Hello World');

    });
}
);
</script>

App.js

var app = require('express')(), server = require('http').createServer(app), io = require('socket.io').listen(server);

server.listen(4001);

app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});

io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'first time connect' });
socket.on('server', function (data) {
    console.log(data);
    socket.emit('news',"hello");
});
});

1 个答案:

答案 0 :(得分:3)

当我部署了云项目时,发现App.js脚本没有运行,即我在web.config中放置的iisnode处理程序在部署整个云项目时没有完成它的工作。经过这个article我发现我必须把一些文件放在我的web角色文件夹中,即 - ChangeConfig.ps1,download.ps1,node.cmd,setup_web.cmd。您可以在阅读该文章时生成这些文件。最后,您必须将此代码放在ServiceDefinition.csdef

<Startup>      
 <Task commandLine="setup_web.cmd &gt; log.txt" executionContext="elevated">
    <Environment>
      <Variable name="EMULATED">
        <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
      </Variable>
      <Variable name="RUNTIMEID" value="node;iisnode" />
      <Variable name="RUNTIMEURL" value="" />
    </Environment>
  </Task>
</Startup>

瞧!!它就像一个魅力。您仍然必须通过在浏览器上运行127.0.0.1/App.js来启动socket.io服务器。我仍然在寻找如何以编程方式启动App.js。