问题标签 [ihttpmodule]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - 利用 IIS ASP.net IHttpModule 中的 WCF 通道
我有一个涉及使用自定义 IHttpModule 的 ASP.net 项目。此模块将位于管道中,当某些条件匹配时,它应该调用 WCF 服务上的方法,该服务托管在同一台机器上的简单 C# 控制台应用程序中。
该模块的代码如下:
我的问题是这是第一次运行,但随后的尝试会导致此错误消息
通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信,因为它处于故障状态。
好像我做错了什么,而且我一般是 WCF 的新手,所以这很有可能。
我认为问题在于重新创建 ChannelFactory,这会导致故障状态。
asp.net - 当处理程序是 MvcHandler 时获取对服务器控件的引用
如果不满足某些条件,我正在开发一个 httpmodule 来隐藏我网站上的某些内容。我的处理程序设置非常简单。以下是我的问题的相关部分:
如果处理程序是页面,则基本上在页面对象上设置事件处理程序。然后在 PreRenderEvent 中循环浏览页面上的所有 IFeatureItem 并调用 IFeatureItem 中的方法。如果处理程序是一个页面,这将非常有用。
该站点具有仪表板的 mvc 视图,还包含可能是 IFeatureItem 的 Web 表单控件。我想要做的是循环浏览此视图中的 webforms 控件,并对它们进行与在普通页面上相同的处理,但我无法找到这样做的方法并且没有运气谷歌搜索。这可能在模块内吗?PreRequestHandlerExecute 是设置我的事件处理程序的正确事件吗?
sharepoint - HTTP 模块导致 Google 缓存出现问题
我有一个实时站点(我无法提供 URL)。它在 sharepoint 2007 上。这些页面有一个 URL,后来被修改了。我编写了一个 http 模块并使用 response.redirect() 将用户导航到正确的页面。
但是由于该站点以前是活动的;在 google.com 上搜索时,它仅显示旧 URL。虽然重定向工作正常。我需要将缓存的 URL 更改为新的 URL。
我怎样才能做到这一点 ?
asp.net - 如何在 asp.net 2.0 的 HTTP 模块中获取登录文本框的值?
我在asp.net 2.0 的Web 应用程序中制作了一个用于身份验证的Http 模块。当 AuthticateRequest 事件被触发时,我会从当前请求中获取用户 ID 和密码值。但每次我都变得空虚。我的代码在这里
我在类库项目中有这个类,并在 web.config 中添加了代码。
请建议我在哪里做错了。提前致谢。
c# - 从 IhttpModule 注入 js
我试图通过使用 ihttpmodule 将 js 注入页面(到标签)。但是js没有注入。
我做了什么:
这页纸:
ihttp模块:
c# - 访问 IHttpModule 中的 Form 集合会导致事件处理程序不会在默认页面上被调用
好吧,这很奇怪。我创建了一个简单的示例站点来演示该问题。在其中,我有一个 Default.aspx 页面,上面有一个按钮:
后面的代码只是在按钮单击时设置标签文本:
然后我有一个 IHttpModule 会为每个请求调用:
同样,这只是一个演示,但这里的重点是,我正在访问请求,以从查询字符串中获取值。如果我在 Cassini 中运行它,一切正常。但是,当我在 IIS 中运行它时,会发生这种情况。当我在以下位置运行网站时:
然后单击按钮,没有任何反应。页面只是重新加载,但我的按钮事件处理程序永远不会被调用,随后标签文本永远不会更新。但是,如果我然后在以下位置运行它:
然后单击按钮,它工作正常,我的事件处理程序确实被调用了!
在挖掘了一些之后,我将模块中的代码更改为:
注意,这里我直接访问 QueryString 属性,而不是访问 context.Request。当我将其更改为此时,无论我在 url 中是否有 Default.aspx,它都可以正常工作?!
我做的下一步是,我查看了 Reflector 以了解 HttpRequest 索引器属性的代码实际上做了什么:
看起来很无害,它只是为我检查各种集合,所以我不需要单独检查每个集合。那么我想知道,其中哪一个电话打破了它。然后我将我的模块更改为:
而现在又坏了!因此,长话短说,仅通过访问IHttpModule 中请求的 Form 集合,我以某种方式搞砸了 PostBack,并且该事件永远不会被触发。
有谁知道为什么会这样?我更像是一个 ASP.Net MVC 人,我不了解 ASP.Net 以及它在幕后拉动的所有花絮,足以真正了解为什么会发生这种情况。
c# - 更好的是:通过 HttpContext.Current.Cache 缓存还是只是静态缓存?
昨晚我写了我的第一个IHttpModule
请求处理。我正在使用正则表达式来检查原始 url。将IHttpModule
在每个请求上调用,因此对正则表达式对象进行某种缓存以防止在每个请求上创建它似乎是合理的。
现在我的问题......什么更好:使用HttpContext.Current.Cache
存储实例化的对象或private static Regex
在我的模块中使用?
我很期待原因。只是为了澄清:正则表达式永远不会改变,因此总是一样的。
asp.net - 如何从全局 web.config 中配置的 IHttpModule 生成 404 响应?
我正在尝试为基于HttpRequest.UserAgent
.
我IHttpModule
在服务器的全局中配置了一个web.config
包含以下代码的:
在浏览器中设置User-Agent
并访问页面会在事件日志中生成一个条目,但该页面也会返回,但没有 404 状态。
对我所缺少的有什么想法吗?
更新:
如果我将它添加到单个站点(在站点中),这IHttpModule
似乎确实有效,但web.config
不适用于所有站点。
更新 2:
仅适用于IIS7服务器IHttpModule
上的单个站点,而不适用于IIS6。
cgi - C# HTTPModule 无法加载类型 CGI 请求
尝试使用我在编译的 C# 类项目中编写的 HTTPModule 来记录请求值并扩展第三方 CGI 购物车。我的模块适用于 asp、asp.net、jpg 和 html 请求,但只要我请求 store.cgi,我就会收到以下错误。我是否必须在 IIS7 中做一些特别的事情,或者 HTTPModule 是否不适用于在 CGI-BIN 中运行的 CGI 可执行文件?
“/cgi-bin”应用程序中的服务器错误。
无法加载类型“IISWatcher.WatchRequests”。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Web.HttpException:无法加载类型“IISWatcher.WatchRequests”。
源代码:
IIS7 的 Web.config:
.....................
asp.net-mvc - ASP.NET MVC + IHttpModule = 未找到
啊解决这个问题,我的大脑是完全忙碌的。当我注册我的 httpmodule 时,我得到了 not-found 错误,否则一切都像一个魅力。
这是我的http模块
以及如何在 Web.config 中注册模块
更新{暂时解决问题}
嗯...我刚刚处理了 HttpApplication 的所有事件,如下所示
我不知道为什么,但是当我只处理很少的重要事件时,上述问题就解决了BeginRequest
。那么真正的问题是因为什么?