c# - asp.net 可以在没有.net 框架的情况下运行吗

标签 c# .net asp.net frameworks

我是 asp.net 的新手。请问没有.net framework asp.net能跑吗?如 default.aspx 可以在没有 .net 框架的情况下顺利运行吗?我问这个是因为以下现有代码在网络托管服务器上运行,另一个是私有(private)服务器。我不确定私有(private)服务器的详细信息(将在 2-3 天内知道)...代码如下...

try
    {
        WebRequest req = WebRequest.Create(General.SiteUrl + "/pages/" + page + ".htm");
        WebResponse resp = req.GetResponse();
        Stream stream = resp.GetResponseStream();
        StreamReader reader = new StreamReader(stream);
        content = reader.ReadToEnd();
    }
    catch { content = "<html><head></head><body>Content not found.</body></html>"; }

Web 托管服务器设法成功运行“Try”,而私有(private)服务器总是显示未找到的内容......有什么想法吗?

最佳答案

访问您网站的人将不需要 .NET Framework;他们只需要一个浏览器。

运行您的网站的服务器将需要 .NET Framework,因为 ASP.NET 是其中的一部分。

服务器端需要 .NET Framework 有几个原因(这些只是一些示例):

  1. 您的代码被编译成一种与平台无关的中间语言。需要运行时(.NET Framework)将这种中间语言转换为机器可以理解的语言。这是由 JIT 完成的。
  2. ASP.NET 中有几个库;系统.Web.dll;例如。它们作为 .NET Framework 的一部分分发。
  3. 代码托管在虚拟机中(在非传统意义上)。虚拟机会为你处理很多繁重的工作;比如安全;垃圾收集;等等。这些都是 .NET Framework 的一部分。

编辑:

我认为您在这里问错了问题。你想知道为什么你的代码进入 catch block 并返回 Content not found。 自调用 catch block 以来,.NET Framework 已正确安装;事实上,如果没有 .NET Framework,它不可能走那么远。

您需要找出在 try block 中抛出什么异常导致它进入 catch block 。您可以使用调试器实现此目的;日志记录;或者暂时一起删除 catch block ,让服务器让异常一直冒到顶部。例如;如果您将代码块更改为如下所示:

    WebRequest req = WebRequest.Create(General.SiteUrl + "/pages/" + page + ".htm");
    WebResponse resp = req.GetResponse();
    Stream stream = resp.GetResponseStream();
    StreamReader reader = new StreamReader(stream);
    content = reader.ReadToEnd();

异常详细信息将显示在浏览器中(前提是您已打开调试)。没有 try/catch 会显示什么错误?

关于c# - asp.net 可以在没有.net 框架的情况下运行吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6654083/

相关文章:

c# - 具有两个访问级别的登录系统

c# - 根据操作名称授权用户

c# - 更改对象发送者控件的 CSS 类

c# - 获取按名称分组的列表的所有组合

javascript - 如何设置刷新后选中的复选框项目?

c# - 需要硬编码密码

.net - .NET 中是否有生产质量的 Google Protocol Buffers 实现

.net - 如何在 EF Code First 中映射表拆分?

c# - ASP :UpdatePanel - Add JavaScript on Button Click

c# - 如果 Pages = 1,则隐藏 DataPager