关于HttpModule的问题

问题描述

做安卓app的服务端,二维码扫描后从服务端下载apk文件客户需要统计apk的下载量为了不改其他地方我的想法是在web中加一个httpmodule判定当请求路径为某个特定路径时调用三层将下载量+1在本地调试是没有问题的但用外网访问的话module的代码没有进请教下这是什么问题代码如下:请赐教!!!

解决方案

解决方案二:
HttpModule的部署与web服务器部署有关,绝非是放到asp.net里边上传一下就行的。如果考虑可靠,其实最直接的办法是使用asp.net成熟的机制,例如使用Global.asax来拦截请求(这就从IIS5以上都支持),或者使用ashx来重定向跳转一下。实际上,如果你们有技术产品设计人员,那么应该是这样的思路:应该访问一个统一的url来下载手机客户端,例如http://www.abc.com/mobile/prod_01然后这个页面根据客户端(iOS、Android、WinPhone、黑莓、windowPC端、macPC端、LinuxPC端等等)的不同,下载不同的安装包。实现规划好url,这才是好的产品。
解决方案三:
实现规划好,明白自己的能力完全可以逐步实现,这就是好的程序设计人员。而选择实现方法时,则不应该单单追求什么时髦、(过度)抽象、高大上。当有着传统的方法去实现时,切忌像个19岁的小孩子一样靠感觉去选择技术。
解决方案四:
引用1楼sp1234的回复:

HttpModule的部署与web服务器部署有关,绝非是放到asp.net里边上传一下就行的。如果考虑可靠,其实最直接的办法是使用asp.net成熟的机制,例如使用Global.asax来拦截请求(这就从IIS5以上都支持),或者使用ashx来重定向跳转一下。实际上,如果你们有技术产品设计人员,那么应该是这样的思路:应该访问一个统一的url来下载手机客户端,例如http://www.abc.com/mobile/prod_01然后这个页面根据客户端(iOS、Android、WinPhone、黑莓、windowPC端、macPC端、LinuxPC端等等)的不同,下载不同的安装包。实现规划好url,这才是好的产品。

谢谢!很受教!因为在开发初期二维码生成的路径是文件的下载路径,而二维码是肯定不能动的所以没有考虑用handler请问下global在哪个事件里监听用户的请求路径呢?我只知道里面有applicationstratend和sessionstartenderror
解决方案五:
本地调试当然没问题因为你发布到网上之后默认的apk都无法下载.所以要下载apk需要设置IIS引用

IIS服务器不能下载.apk文件的解决步骤:打开IIS服务管理器,找到服务器,右键-属性,打开IIS服务属性;单击MIME类型下的“MIME类型”按钮,打开MIME类型设置窗口;单击“新建”,建立新的MIME类型;扩展名中填写“.apk”,MIME类型中填写apk的MIME类型“application/vnd.android.package-archive”单击“确定”保存设置。重启IIS,使设置生效。现在使用IIS服务器的网站就可以下载.apk文件了。

解决方案六:
你部署到iis几,版本不同配置文件的配置可能不同。
解决方案七:
引用4楼diaodiaop的回复:

本地调试当然没问题因为你发布到网上之后默认的apk都无法下载.所以要下载apk需要设置IIS引用
IIS服务器不能下载.apk文件的解决步骤:打开IIS服务管理器,找到服务器,右键-属性,打开IIS服务属性;单击MIME类型下的“MIME类型”按钮,打开MIME类型设置窗口;单击“新建”,建立新的MIME类型;扩展名中填写“.apk”,MIME类型中填写apk的MIME类型“application/vnd.android.package-archive”单击“确定”保存设置。重启IIS,使设置生效。现在使用IIS服务器的网站就可以下载.apk文件了。

我已经在MIME中加了apk这个不是能不能下载的问题是不进module下载依然可以下只是不执行module中的方法
解决方案八:
引用5楼skyandcode的回复:

你部署到iis几,版本不同配置文件的配置可能不同。

IIS6server2003r2
解决方案九:
你程序池用的模式也是和你本地一致的么
解决方案十:
引用8楼uinatlex的回复:

你程序池用的模式也是和你本地一致的么

你是说iis的应用程序池模式?集成还是经典?
解决方案十一:
引用2楼sp1234的回复:

实现规划好,明白自己的能力完全可以逐步实现,这就是好的程序设计人员。而选择实现方法时,则不应该单单追求什么时髦、(过度)抽象、高大上。当有着传统的方法去实现时,切忌像个19岁的小孩子一样靠感觉去选择技术。

按你的说法我在global.asax中加了一个application_beginrequest方法在方法中让下载量+1本地调试没有问题用外网访问依然是没有效果
解决方案十二:
问题已解决在iis中ISAPI处理的后缀名里添加.apkmodule就可以拦截到了
解决方案十三:
引用11楼qq229943249的回复:

问题已解决在iis中ISAPI处理的后缀名里添加.apkmodule就可以拦截到了

感觉这个太草率了,还是单独放一个页面做下载链接好多了,不过这个出问题都是出在配置和权限。

时间: 2024-08-31 00:19:49

关于HttpModule的问题的相关文章

Community Server专题三:HttpModule

server 从专题三开始分析Community Server的一些具体的技术实现,根据IIS对请求的处理流程,从HttpModule& HttpHandler切入话题,同时你也可以通过一系列的专题了解CS的运行过程,不只如此,所有的.Net 1.1 构架的Web App都是以同样的顺序执行的. 先了解一下IIS系统.它是一个程序,负责对网站的内容进行管理并且处理对客户的请求做出反应.当用户对一个页面提出请求时,IIS做如下反应(不考虑权限问题): 1.把对方请求的虚拟路径转换成物理路径 2.根

C#过滤器HttpModule

C#过滤器HttpModule的使用,如下代码示例: using System;  using System.Web;    public class HttpModule:IHttpModule  {       public void Dispose()       {       }         public void Init(HttpApplication application)       {           application.BeginRequest+=new Ev

asp.net 通过httpModule计算页面的执行时间

创建一个类库,建立如下类: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Web;//引用web命名空间 using System.Text; namespace TimerHttpModule { public class Class1:IHttpModule//继承IHttpModules { public void Init(HttpApplication application)//实现IH

ASP.Net中自定义Http处理及应用之HttpModule篇

asp.net HttpHandler实现了类似于ISAPI Extention的功能,他处理请求(Request)的信息和发送响应(Response).HttpHandler功能的实现通过实现IHttpHandler接口来达到.而HttpModule实现了类似于ISAPI Filter的功能.   HttpModule的实现HttpModules实现了类似于ISAPI Filter的功能,在开发上,通常需要经过以下步骤: 1.编写一个类,实现IhttpModule接口 2.实现Init 方法,

SharePoint中如何在Feature中动态Register/Remove HttpModule

在SharePoint开发时,你会遇到这样一个问题,Global.asax去哪儿?怎样添加一个Global.asax?怎样在Application_Start这个事件处理程序里设置初始化?似乎在Visual Studio中无法像纯ASP.NET开发那样轻松添加一个Global.asax. 当然找到这个Global.asax也不难,打开IIS,右键浏览对应网站,在网站根目录下你可以找到Global.asax.比如我的网站部署在C:\inetpub\wwwroot\wss\VirtualDirect

SharePoint中如何利用HttpModule的Init方法实现全局初始化

我们知道,HttpRuntime中会对每一个Request创建一个HttpApplication对象(HttpApplicationFactory从一个HttpApplication池来拿).对于Global.asax,当创建第一个HttpApplication对象才会执行的Application_Start方法. 然后每一个HttpApplication对象会创建HttpModule对象,然后只执行一次Init方法.但在实际场景中,HttpRuntime会根据请求次数创建多个HttpAppli

MVC系列(6) 动态注册HttpModule

通过前面的章节,我们知道HttpApplication在初始化的时候会初始化所有配置文件里注册的HttpModules,那么有一个疑问,能否初始化之前动态加载HttpModule,而不是只从Web.config里读取? 答案是肯定的, ASP.NET MVC3发布的时候提供了一个Microsoft.Web.Infrastructure.dll文件,这个文件就是提供了动态注册HttpModule的功能,那么它是如何以注册的呢?我们先去MVC3的源码看看该DLL的源代码. 注:该DLL位置在C:\P

无侵入方面编程-用HttpModule+SoapExtension监视页面执行参数(二)

上一篇文章 "无侵入方面编程-用HttpModule+SoapExtension监视页面执行参数(一)"中 ,我们实现了监视每个页面的执行情况和调用WebService的简单信息. 这次我们继续深入一下SoapExtension的应用,在不改变Soap的WSDL文档的情况下,配合在Dotnet编 写的WebService站点配置我们编写的SoapExtension,来穿透传输我们自定义的数据对象.由于 SoapExtension是全局的,我们还要加一些标识来区分服务器是否已经配置了我们

无侵入方面编程-用HttpModule+SoapExtension监视页面执行参数(一)

先简单介绍一下项目吧,我们这个项目是用VS2003开发的,老早一个项目.WEB前端机+业务处理 (WebService层)+数据库分别布置在不同的计算机上. 现在老总有一个需求,要统计出每个页 面的执行时间,以及每次调用过哪些WebService方法,调用的时间等参数. 可行的方案有好多, 但我感觉使用HttpModule+SoapExtension,可以不在改变目标系统源码的基础上,完成这项工作.也许 有一天,老总说,现在不需要再统计了,我就直接配置一下,不再统计就行了. 由于要调用 WebS

HttpModule实现系统IP访问控制详解

最近项目中的一个政务系统要求可配置的IP访问控制,既然有这个需求我们自 然要满足啦. 对于之前一篇中使用IHttpHandlerFactory验证用户经验,这次使用 HttpModule来更早的检测用户. 如何来更好的判断IP是否在允许的列表或者禁止的列表,基于目前IPV4,就干 脆IP的4位字段分别判断,这样也可简单的批量IP网段设置. 系统中将配置保存到数据库中,数据库设计如下: 接下来就可编写Httpmodule了,如下: public class IPHttpModule : IHttp