asp.Net mvc 如何与 IIS 紧密结合?

How was asp.Net mvc tightly coupled with IIS?

Whosebug 上没人敢回答这个问题 How is an ASP.NET MVC application heavily dependent on System.Web assembly?

有人评论说 System.web 与 Asp.Net 而不是 IIS,那么为什么我们不能在其他网络服务器上托管 asp.net mvc 应用程序?

“为什么我们不能在其他 Web 服务器上托管 ASP.NET MVC”是一个无效的陈述,因为您绝对可以 运行 在其他 Web 服务器上使用此类 Web 应用程序,例如 Apache/nginx/Jexus以及更多,在 Mono 的帮助下,

  • 开源 System.Web 实现。
  • FastCGI 守护程序与所有兼容的 Web 服务器集成。

但是,如果您想托管您的生产 Web 应用程序,与使用 Microsoft 的 .NET Framework/IIS/Windows 相比,这种方法并不现实,因为您需要在 Mono 问题上支持自己,因为它不那么可靠作为 .NET Framework(及其 System.Web 已完成)。

ASP.NET核心是目前正确的方法。

嗯,评论里的问题问.net是如何依赖IIS的?

没有! IIS 依赖.net,部分是用.net 创建的!!

所以.net不依赖IIS,IIS依赖.net才能运行!

使用 Apache 或 IBM WebSphere Web 服务器?他们依赖什么?当然,为什么有问题的 Web 服务器是用代码库和语言构建的。

我的意思是,Excel 依赖于哪些语言和库? (答案:代码库 Excel 是用它构建的)。 Excel 或某些 Web 服务器的工作原理相同。

由于 IIS 是使用大量 .net 框架构建的,因此这就是它所需要的。

.net 上没有对 IIS 的依赖,恰恰相反。

因此,Web 服务器构建的代码库和系统并不一定意味着构建的网站需要使用这些库。

所有 3 个 Web 服务器(Apache、IBM WebSphere、IIS)都可以处理基本的 HTML 站点,并且可以接受标准的 Web 请求。

而且他们都必须输出 100% HTML 标准页面供任何浏览器使用。

但是,我们混淆了网站服务器系统的构建与开发人员构建网站的内容!!!

Web 服务器是用 c++ 编写的,还是由 .net 编写的,或者 PHP 用于 Apache?

我们不在乎。

但是,如果我建立一个使用 MySQL 的站点,那么显然该站点将无法在没有 oracle 数据库系统的托管服务器上运行。

因此,必须:

use the developer tools and support of what the web server has

or

pick your web development tools and FIND a web server system that supports that choice.

除非该 Web 服务器支持使用 python 或任何浮动的开发语言?那么是的,网络服务器必须支持与相关代码系统的交互。但这是对所有 Web 服务器的相同要求。

因此,构建网站所用的内容比构建 Web 服务器所用的内容更重要。

我的意思是,可以用汇编程序、C++ 或 BASIC 创建一个 100% 兼容的 Web 服务器。

具体情况是该 Web 服务器支持什么样的开发周期和系统?对于使用 .net 构建的站点?

没有实际要求使用 .net 框架构建 Web 服务器,但该服务器和相关站点肯定需要能够使用 .net 代码。

何时创建 .net 站点并发布?所有 .net 源代码都被编译成 .net .dll。所以至少,该 Web 服务器必须支持对那些 .dll 的调用,并且它们需要 .net 框架。这并不意味着 Web 服务器必须使用 .net 框架构建,但它确实意味着所讨论的服务器必须支持将 .net 程序集作为 .dll 调用。

此外,所有网络服务器都有相当多的特定系统,安全和身份验证就是其中之一。因此,如果开发人员采用特定的安全模型,那么与 IIS 相比,Apache 将支持相同的安全性和配置是非常值得怀疑的。

通常,Web 应用程序的某些部分当然会调用和使用这些 Web 服务器安全功能,甚至是作为该 Web 服务器的一部分包含的通用库。

因此,Excel 的 windows 版本不再 Mac 或 Andriod phone 上的 运行一组特定的标准。

但是,说到底呢?

Web 服务器依赖于 .net 代码,而不是依赖于 IIS 的 .net 框架。 IT 实际上恰恰相反。

这与建议 Excel 应该能够读取和使用 power-point 文件并没有太大的不同。这里有区别。

网站开发从来不允许将任何旧网站扔到某个 Web 服务器上,我们可以期望它 运行。

在这方面,如果您要在桌面上使用 Excel,则需要安装 Excel。 Web 服务器只是一台计算机,因此您在该计算机上使用的任何代码和东西都必须在该计算机上安装和支持。

因此,例如,虽然您可以 运行 在 Linux 上编写 .net 代码,但为 IBM 的 WebSphere、Apache 或 ISS 开发的网站都将有所不同,当然如此网站不能互换或相互兼容,因此 Excel 的 windows 版本与 Android 或 Mac 版本相同。

事实上,任何桌面软件的作用有多大?那么该软件只能在支持该软件的台式计算机上运行 运行s。网络服务器在这方面是相同的 - 它只能 运行 与给定服务器和设置 100% 兼容的软件。

总而言之? 从我们都参与的 PC 革命的第一天起,所有计算机的工作方式与它的工作方式非常相似。

with some examples, like this and that component of Asp.net Framework are initiated by IIS, s

好吧,任何 .dll 的加载和调用方式与这里的工作方式几乎相同。

新的 .net 核心?所有较新的框架都是一个不依赖于 windows api 和平台的 .net 运行 时间系统。从开发人员的角度来看,使用 .net 核心还是旧的 .net 框架?您没有注意到差异,但是 .net 运行time(核心)删除了对 windows.

的依赖

所以就像 Java 引擎可以 运行 从 phone 到服务器的任何东西? .net 核心也是如此。它应该能够在任何计算机上 运行 - 甚至 Android phones。所以较新的 .net 核心是一个简单的重新改造的 .net 运行时间系统,它更加平台中立。

.net 框架的整体理念很像 Java 引擎。他们可以在任何平台上重新构建 .net 解释器 运行,因此理论上围绕 .net 构建的代码可以在任何计算机上 运行 - 而不仅仅是 windows。但是,.net 框架当然非常依赖 windows API 和平台。重新改造的 .net 核心消除了这些依赖性。

因此,理论上,任何使用 .net 核心编写的软件在理论上都是多平台的,并且相当“OS”中立。当谈到桌面软件时,这是否可以做到有点令人怀疑,但是基于网络呢?是的,这个目标很容易,因为渲染输出的另一端是基于行业标准(HTML - 现在是网络组装)。