c# - 在 ASP.NET MVC View 中使用 node.js

标签 c# asp.net asp.net-mvc node.js asp.net-mvc-4

我是 .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/

相关文章:

c# - 当轮廓可以撕裂时,如何检测简单形状(使用emgu cv)?

c# - 在 Visual Studio 2010 语言服务中实现查找引用

c#.net 使用向导控件从动态框保持控件状态

c# - 从数据表中选择两列之间的记录

c# - AngularJS $http(...) errorHandler 接收到数据的空字符串

javascript - 使用 C# 从 Chrome 中现有打开的选项卡中检索值

c# - 选择所有具有活跃项目的类别?

c# - Windows 身份基础仅适用于内部应用程序/网站?

asp.net-mvc - 在 Visual Studio 2012 中的 MVC 应用程序上运行 Page Inspector 时获取 "object reference not set to an instance of an object"

c# - "Unable to cast object of type ' ConcreteTypeMapping ' to type ' Microsoft.EntityFrameworkCore.Storage.RelationalTypeMapping"WebApi on macos