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