首页 > 解决方案 > 为什么 asp.net 需要 IIS(Internet Information Services)来运行 Web 服务器?这在nodejs中如何工作?

问题描述

如果在 中开发 Web 应用程序Asp.netIIS则需要运行 Web 服务器。

怎么这些two(Asp.net and IIS) works together?IIS 是否获取构建文件并运行服务器?

expressjs(nodejs 的框架)如何运行 Web 服务器,因为它不使用任何其他软件?

标签: asp.netnode.jswebserver

解决方案


我可以解释 node.js 方面的事情,希望其他人能来解释 IIS/ASP.net 方面的事情。

Node.js 是一个通用的 Javascript 运行时环境。您可以在其中构建各种应用程序,甚至是与 Web 服务器完全无关的应用程序。

碰巧 node.js 中的内置库之一是 http/https 服务器。因此,如果您想构建一个 node.js 驱动的 Web 服务器,您只需获取 http 服务器对象,创建一个服务器,启动它并在请求处理上进行编程。

Express 是一个构建在 node.js http/https 服务器对象之上的 Web 框架。它使用内置服务器并提供一个框架来定义请求处理程序、设置路由和中间件,并且支持中间件 API 支持各种 3rd 方库来执行各种 Web 服务器类型的事情,例如身份验证、加密、压缩、上传、下载、图像处理、音频处理、视频处理等...

node.js 与许多其他 web 服务器框架的不同之处在于 node.js 并没有一开始就说我只是一个做 web 服务器工作的工具。它最初是一个通用编程环境,恰好内置了一个非常好的 Web 服务器,作为人们可以使用的工具之一。而且,只需几行代码即可使用内置支持创建和启动您自己的 Web 服务器。我会大胆猜测,构建 Web 服务器应用程序可能是使用 node.js 做的最流行的事情,但肯定不是唯一的事情。

例如,我编写了一个 node.js 脚本,它在我的磁盘驱动器上进行夜间清理。它从我的临时目录中删除某些类型的文件。它有助于管理备份文件(仅保留我的 Adob​​e Lightroom 目录的最后 10 个备份)。node.js 的这种使用与 Web 服务器完全无关。它只是一个 Javascript 运行时环境,我碰巧使用其中的文件系统访问库来进行一堆文件管理。

例如,下面是在普通 node.js 中启动基本 Web 服务器的代码:

const http = require('http');
const server = http.createServer(function(req, res) {
    console.log("got a request from", req.url);
    res.end("Hi");
});

// start web server on port 3000
server.listen(3000);

推荐阅读