如何为ASP.Net(没有Webforms或MVC)创建一个基本的HttpApplication
好的,我想了解更多关于ASP.Net如何在引擎盖下工作的信息。我的意思是在MVC或Webforms和其他类似的框架之下如何为ASP.Net(没有Webforms或MVC)创建一个基本的HttpApplication,asp.net,web-config,global-asax,httpapplication,Asp.net,Web Config,Global Asax,Httpapplication,好的,我想了解更多关于ASP.Net如何在引擎盖下工作的信息。我的意思是在MVC或Webforms和其他类似的框架之下 基本上,我想知道这些框架是如何连接到ASP.Net的,以便它们与IIS一起工作。创建一个简单的HttpApplication,它与IIS一起工作,并且既不使用MVC也不使用Webforms,最起码的要求是什么?Web.config中的最低要求是什么?将向Global.asax添加什么?编写一个继承自IHttpHandler的类。接口定义为: public interface I
基本上,我想知道这些框架是如何连接到ASP.Net的,以便它们与IIS一起工作。创建一个简单的HttpApplication,它与IIS一起工作,并且既不使用MVC也不使用Webforms,最起码的要求是什么?Web.config中的最低要求是什么?将向Global.asax添加什么?编写一个继承自
IHttpHandler
的类。接口定义为:
public interface IHttpHandler
{
void ProcessRequest(HttpContext context);
bool IsReusable { get; }
}
HttpContext
是执行应用程序所需的全部内容。它充当交互中涉及的所有事物的门面。Server
属性提供有关服务器的信息。Request
属性提供了有关HttpRequest的信息,而Response
属性提供了向客户端呈现输出的方法
我的建议是在HttpContext上使用Reflector,了解它包含的内容以及每个组件的工作方式
下面是一个基本的应用程序示例:
public class HelloWorldHandler: IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.Write("Hello World");
context.Response.End();
}
public bool IsReusable
{
get { return false; }
}
}
Global.asax
不必包含任何内容。使用从IHttpModule
派生的类处理全局事件可能是更好的做法
web.config的处理方式必须有所不同,这取决于您是在使用IIS 7还是其他内容。无论哪种方式,都有一个HttpHandler部分,您必须在其中注册自定义处理程序来处理所有请求
您可以将web.config设置得非常小,但是包含的配置部分的数量取决于您想要的功能。此外,web.config处理的一些事情可以直接通过IIS进行管理。查看更多关于此的信息
我希望这有帮助。如果你能更具体地说明你在寻找什么,我们可以给你提供更好的信息。我本来打算自己回答这个问题,因为我已经回答了。smartcaveman提供了部分解决方案 对于web.config:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true">
</compilation>
</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
<!--
The system.webServer section is required for running ASP.NET AJAX under Internet
Information Services 7.0. It is not necessary for previous version of IIS.
-->
<system.webServer>
</system.webServer>
<runtime>
</runtime>
</configuration>
然后,您可以使用ASP.Net处理程序来处理内容(如图所示),当然,您也可以自己编写替换程序,自己编写响应程序
作为参考,我用自定义路由引擎(和视图引擎)创建的工作框架位于中,我建议您使用它来查找。@John问题是有太多东西需要查看。我的意思是只要计算一下标准web.config中有多少程序集引用
protected virtual void Application_BeginRequest (Object sender, EventArgs e)
{
if (Request.Url.AbsolutePath == "/test")
{
var h=new Test1(); //make our Test1.ashx handler
h.ProcessRequest(Context);
}
else
{
Response.ContentType = "text/plain";
Response.Write("Hi world!");
}
CompleteRequest();
}