标签: httpmodule

在asp.net开发服务器上调试httpmodule

我想在我的asp.net应用程序的一些HTTP模块(V 3.5,Visual Studio 2008中)整合和我不知道如何调试或使用这些模块在调试时在asp.net开发服务器火灾,当我运行web应用程序.

我是否需要在解决方案中包含模块源,或者我可以将DLL丢弃到BIN中?我来自1.1世界,还没有习惯asp.net开发服务器.

asp.net httpmodule

10
推荐指数
3
解决办法
2万
查看次数

如何在Asp.Net中为所有子文件夹注册HttpHandler?

我想注册一个HttpHandler来包含根文件夹的所有子文件夹,无论它们嵌套多远.我希望使用下面的代码执行此操作,但事实上它只包含直接在根文件夹中的项目.

<httpHandlers>
  <add verb="*" path="root/*" type="HandlerType, Assembly" />
</httpHandlers>
Run Code Online (Sandbox Code Playgroud)

我当然可以注册如下,以包含第二层的任何内容,但是还没有找到一种方法来在root下面说出任何东西.

<httpHandlers>
  <add verb="*" path="root/*/*" type="HandlerType, Assembly" />
</httpHandlers>
Run Code Online (Sandbox Code Playgroud)

帽子一直困扰着我很长一段时间,我很想听到一个简单的解决方案.

我想澄清的是,当我说"root"时,我并不是指应用程序的根目录,并且不一定有兴趣将应用程序中的所有请求发送到要处理的模块.

asp.net web-config httphandler httpmodule

10
推荐指数
3
解决办法
5277
查看次数

在HttpModule中挂钩到Application_Start

我正在实现一个简单的HttpModule,我想在Web应用程序启动时运行一些代码.但我很惊讶地发现我通常从Global.asax使用的Application_Start事件不能从HttpModule获得.这是正确的,还是我错过了什么?

如何从HttpModule挂钩到Application_Start事件?

更新:
我使用Init事件来解决简单的问题,但它对我来说仍然有点滑稽.

.net c# vb.net asp.net httpmodule

10
推荐指数
1
解决办法
9001
查看次数

ISAPI与httphandler

在IIS6中是否有使用ISAPI过滤器/扩展的原因?使用httphandler/http模块可以达到同样的效果.在IIS7中还有ISAPI被彻底删除了吗?IIS7的整个代码是用.Net编写的.我想知道是否应该详细了解ISAPI以进行调试或添加新功能?

iis iis-7 httphandler httpmodule isapi

9
推荐指数
1
解决办法
2662
查看次数

何时使用HttpHandlers和HttpModules?

什么时候使用HttpHandlers和HttpModules?

我不能在ASPX页面的代码后面编写代码吗?

asp.net module httphandler httpmodule handler

9
推荐指数
1
解决办法
1万
查看次数

检测是否加载了HttpModule

我正在尝试找到一种方法来以编程方式检查是否加载了特定的HttpModule(作为我正在编写的组件需要模块正常工作).我尝试着:

bool ismodulepresent = false;
foreach(HttpModuleAction module in ((HttpModulesSection)ConfigurationManager.GetSection("system.web/httpModules")).Modules)
{ 
    if(module.Type == typeof(MyModule).FullName)
    {
        ismodulepresent = true;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

但这仅适用于IIS5.1 <httpModules>部分,而不适用于较新的<system.webServer>部分.

有没有想过除了检查两个部分之外还有更好的方法吗?

asp.net iis httpmodule

8
推荐指数
1
解决办法
2354
查看次数

IIS 7.5 ASP.NET HttpModule - 设置Response.Filter会导致分块编码

我正在尝试创建一个改变Response.Filter类似的HttpModule (对于此演示,只需将过滤器设置回自身):

public class ContentTrafficMonitor : IHttpModule
{
  public void Init( HttpApplication context )
  {
     context.BeginRequest += OnBeginRequest;
  }

  public void Dispose()
  {
  }

  private static void OnBeginRequest( object sender, EventArgs e )
  {
     var application = (HttpApplication) sender;
     application.Response.Filter = application.Response.Filter;
  }
Run Code Online (Sandbox Code Playgroud)

}

这样做会将响应的传输编码设置为chunked,而不是使用Content-Length标头.

如果我删除设置的行Response.Filter,则响应确实有Content-Length标题.我们的应用程序取决于Content-Length标题,有什么方法可以防止这种行为?

asp.net iis iis-7 httpmodule content-length

8
推荐指数
1
解决办法
1548
查看次数

如何分析ASP.NET MVC应用程序中的请求性能?

我想捕获ASP.NET MVC应用程序中的请求的命中时间,处理时间,内存消耗和响应时间.

有没有办法或工具来执行此操作?

c# asp.net-mvc performance iis-7 httpmodule

8
推荐指数
2
解决办法
8434
查看次数

HttpModule:如何在没有HttpContext的情况下处理HttpApplication错误?

我遇到了一个特别有趣的情况.我有一个通用的错误处理例程当前工作.最近我注意到了一个有点奇怪的行为:HttpApplication.Error会启动,但HttpContext.Current会为空.这是我的HttpModule上的相关内容:

public void Init(HttpApplication context)
{
    context.Error += context_Error;
    context.PostMapRequestHandler += context_PostMapRequestHandler;

}

void context_PostMapRequestHandler(object sender, EventArgs e)
{
    var aux = HttpContext.Current.Handler as Page;
    if (aux != null) aux.Error += context_Error;
}

void context_Error(object sender, EventArgs e)
{
    _localLog.Add("HttpApplication error handler reached.");
    try
    {
        if (HttpContext.Current == null)
        {
            _localLog.Add("No HttpContext.");
        }
        else
        {
            var objError = HttpContext.Current.Server.GetLastError();

            if (objError == null)
            {
                _localLog.Add("GetLastError(): no error.");
                return;
            }

            //[Proper error handler follows here...]
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net httpmodule httpapplication

8
推荐指数
0
解决办法
1023
查看次数

customErrors与自定义模块

我目前有httpErrors设置处理500's: -

<httpErrors errorMode="Custom" existingResponse="Replace">
        ......
        <remove statusCode="500"/>
        <error statusCode="500" path="/server-error" responseMode="ExecuteURL"/>
</httpErrors>
Run Code Online (Sandbox Code Playgroud)

这工作正常,但在iis收到错误的情况下,我仍然得到死亡的黄色屏幕.一个例子是当实体框架无法连接到数据库并且我收到: -

无法打开登录请求的数据库"Test-DB".
登录失败.
用户'sa'登录失败.

我已经设置customErrors好处理这个: -

<customErrors mode="On" defaultRedirect="error.html" redirectMode="ResponseRedirect">
        <error statusCode="500" redirect="error.html" />
</customErrors>
Run Code Online (Sandbox Code Playgroud)

只要没有没有,它modules就能按预期工作preCondition="managedHandler".

我有几个模块处理图像和CSS文件,并在同一个项目中.

<modules runAllManagedModulesForAllRequests="false">
        <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
        <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
        <add name="ImageHandler" type="foo.bar.ProductImageHandlerHttpModule" />
        <add name="CustomCssHandler" type="foo.bar.CustomCssHttpModule" />
        <add name="Glimpse" type="Glimpse.AspNet.HttpModule, Glimpse.AspNet" preCondition="integratedMode" />
</modules>
Run Code Online (Sandbox Code Playgroud)

评论这些,我得到了error.html,保持他们,我得到

运行时错误
说明:处理请求时发生异常.此外,执行第一个异常的自定义错误页面时发生另一个异常.请求已终止.

显示项目中的模块在尝试显示时也出错error.html.

有谁知道修复/解决方法?

c# asp.net iis asp.net-mvc httpmodule

8
推荐指数
1
解决办法
531
查看次数