我是 .Net 开发人员,也是 Node.js 应用程序的新手。我试图通过 Node.js 为我的 ASP.NET MVC 应用程序创建一个代理层,以进行跨域通信,而无需触及 ASP.NET WebAPI 的服务器级别配置。
让我们从代码开始快速理解我的问题,
我创建了一个 MVC 应用程序,将我的 Node 保存在“MyApp/app.js”下,并且 ASP.NET MVC View 将对我的 Node 文件进行 AJAX 调用。
<h2>This is an Index page</h2>
<script>
$(function () {
$.ajax({
url: "/sample",
success: function () {
alert('Done');
}
});
});
</script>
下面是我的 web.config,
<handlers>
<!-- indicates that the app.js file is a node.js application to be handled by the iisnode module -->
<add name="iisnode" path="MyApp/app.js" verb="*" modules="iisnode" />
</handlers>
这是我的 app.js,
var express = require('express');
var app = express();
app.set('port', process.env.PORT || 3000);//When I hardcode to Port:80 I'm getting "Error: listen EACCES 0.0.0.0:80"
app.listen(app.get('port'), function () {
console.log('Express up and listening on port' + app.get('port'));
});
app.get('/Sample', function (req, res) {
res.send('Hello World Sample!');
});
当我尝试打开 View 时,AJAX 调用失败并显示“404 错误”。我尝试在端口 :80 运行我的 Node 应用程序,但它抛出错误“错误:监听 EACCES 0.0.0.0:80”。为什么我无法在同一端口上运行 Node 应用程序和 ASP.NET MVC View ?
最佳答案
不幸的是,不可能在同一端口上运行两个应用程序。这就是您在运行 Node 应用程序时收到端口错误的原因。
您尝试在同一个应用程序中执行此操作是否有原因?
您所描述的似乎是使用 Node 创建一个 API 并从基于 ASP.NET MVC 编写的网站访问该 API?
如果是这种情况,您需要在不同的 IP 地址或不同的服务器上运行它们,以便共享相同的端口 - 或者只是在不同的端口上运行它们。
关于c# - 在 ASP.NET MVC View 中使用 node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34637807/