.NET, ASP.NET, aspNETserve, C#, 存档

社区编码竞赛

开发开源项目是一次非常有益的经历。但遗憾的是 (作为开源开发人员) 开源项目很少得到他们应得的反馈。通常, 开发人员只有在软件被破坏时才会听到用户的反馈, 正因为如此, 往往很难知道作者的作品何时才会得到真正的欣赏。 read more

ASP.NET, aspNETserve, 存档

点释放

只是一个快速的更新, 一个新版本的 aspnetserve 已经发布。版本1.3.1 表示包含常规错误修复的点版本, 建议所有用户使用。

.NET, ASP.NET, aspNETserve, C#, 存档

什么是新的

Jason / 八月 19, 2008

正如我在上一篇文章中提到的, aspnetserve 1.3 刚刚发布。随之而来的是一些激动人心的变化。以下是一些最显著的变化的概述:

http 持久连接

aspnetserve 的目标是针对 http 协议的1.1 版, 而在1.3 版之前, 它在该目标中存在明显的缺陷。它甚至没有试图保持周围的 "保持活力" (又名、持续的) 联系。服务器在每次请求后都天真地关闭了连接。

1.3 版中的新 aspnetserve. server 对象完全支持持久连接, 并随之引入了几个新属性:

maxconnect

此属性表示允许的最大同时连接数。一旦达到最高金额, 将拒绝额外的请求。

保持的 aliverequest出路

一个时间段 (以毫秒为单位), aspnetserve 将等待以前建立的连接上的后续通信。

视窗服务服务器

ice (双关语的意思) 允许 aspnetserve 在后台处理请求。此外, 这允许请求处理, 而无需用户首先登录并启动 simpleserver ui。

ice 从一个 xml 文件读取它的配置, 该文件的架构是在 wiki 页面 "概要概述" 上定义的

下面是 xml 文件的一个简单示例:

<?xml version="1.0" encoding="utf-8"?><s
erver xmlns="http://aspnetserve.googlecode.com/svn/tags/Release%201.3/aspNETserve/Configuration/Xml/aspNETserve.config.xsd">        <
application physicalpath="c:temp">            
    <domain name="www.example.com" virtualpath="/"></domain>         
       <endpoint ip="127.0.0.1" port="80"></endpoint>   
             <endpoint ip="127.0.0.1" port="443" secure="true"></endpoin
t>        </application
></server>
read more

ASP.NET, C#, Visual Studio, 存档

asp. net mvc: 导览游

Jason / 六月 25, 2008

我们都读过什么是 mvc, 但它到底是如何工作的呢?是什么螺母和螺栓, 使 mvc 魔术发生?幸运的是, microsoft 已经向 asp. net mvc 发布了源代码, 我们可以阅读详细信息。但是, 如果你和我一样阅读源代码与真正了解应用程序的工作原理有很大的不同。幸运的是, 自从源代码发布后, 我们可以做的远不止于阅读, 我们可以使用调试器来逐步完成它。

visual studio 中的调试器对于现代开发人员来说是一个非常有用的工具。我经常使用调试器作为开发代码的第一个调试路由。有趣的是, 我们可以使用相同的调试器遍历 asp. net mvc, 以便更好地了解它的运行方式。

我们需要做的第一件事是将源代码下载到 asp. net mvc, 并在启用调试的情况下对其进行编译。源代码可以从它的 codeplex 页面下载。下载包含 visual studio 2008 项目。只需打开项目并进行重建。完成后, 您应该会在提取下载的源代码的文件夹中的 bin 目录中的目录中看到四个文件。

在这些文件中, 我们只对其中的两个感兴趣。System.Web.Mvc.dll 和 System.Web.Mvc.pdb。  请记下这些文件在您的计算机上的位置, 因为我们将需要添加对这些文件的引用。

在 visual studio 的新实例中, 允许创建新的 asp. net mvc 应用程序。我们需要做的第一件事是删除对 System.Web.Mvc 的引用。展开引用文件夹, 右键单击 System.Web.Mvc 并选择 "删除"

删除 System.Web.Mvc 的引用后, 您现在需要将其添加回。只有这次, 我们将引用我们刚刚编译的 dll, 而不是引用 asp. net mvc 附带的 dll。通过右键单击引用文件夹并选择 "添加引用…", 您将获得浏览引用的选项。只需导航到我要求您记住之前的路径, 然后选择 System.Web.Mvc.dll 文件, 然后单击 "确定"。

现在, 我们都已准备好开始调试 asp. net mvc 的内部。对于启动器, 导航到预先生成的家庭控制器, 并在 index 方法的第一行上放置个断点。  现在, 在启用调试的情况下启动站点。

完成所有编译并启动应用程序后, visual studio 实例应立即停止。

此时, 在 "调用堆栈" 窗口中, 您应该会看到 System.Web.MVC.DLL 的条目, 并且这些条目应为黑色 (而不是灰色)。这意味着 visual studio 具有需要向我们显示这些方法的源代码的调试信息。这正是我们所尝试的, visual studio 现在将我们都以与代码非常相似的方式逐步完成 asp. net mvc 代码。让我们从详细分析调用堆栈开始。

在调用堆栈中, 我们看到以下内容:

mvcapation.1. dll!MvcApplication1.Controllers.HomeController.Index () System.Web.Mvc.DLL!!!System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod (...) System.Web.Mvc.DLL!!!System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters.AnonymousMethod (...) System.Web.Mvc.DLL!!!System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter (...) System.Web.Mvc.DLL!!!System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters.AnonymousMethod () System.Web.Mvc.DLL!!!System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters (...) System.Web.Mvc.DLL!!!System.Web.Mvc.ControllerActionInvoker.InvokeAction (...) System.Web.Mvc.DLL!!!System.Web.Mvc.Controller.Execute (...) System.Web.Mvc.DLL!!!System.Web.Mvc.Controller.System.Web.Mvc.IController.Execute (...) System.Web.Mvc.DLL!!!System.Web.Mvc.MvcHandler.ProcessRequest (...) System.Web.Mvc.DLL!!!System.Web.Mvc.MvcHandler.ProcessRequest (...) System.Web.Mvc.DLL!!!System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest (...) read more

ASP.NET, 存档

asp. net mvc 身份验证综述

Jason / 六月 25, 2008

从 asp. net mvc 的预览3开始, 身份验证似乎已被排除在框架之外。因此, 在将这一功能包括在内之前, 微软似乎已经将安全作为读者的练习。许多开发人员都找到了保护其 mvc 应用程序的创造性解决方案。下面是一些有趣的链接: read more

.NET, ASP.NET, aspNETserve, C#, 存档

更新

Jason / 六月 25, 2008

我已经有一段时间没有提到任何关于 aspnetserve 的事情了, 所以我想现在是更新的时候了。自2007年12月上一次更新以来, 直到最近才有任何活动。在被大量的个人和职业义务分散注意力之间, 这个项目退居二线。 read more