IIS7、RewritePath 和 IIS 日志文件

2024-03-29

我在 IIS7 上运行的 ASP.NET 3.5 应用程序中使用 Context.RewritePath() 。

我正在应用程序 BeginRequest 事件中执行此操作,并且一切正常文件。

/sports 的请求被正确重写为default.aspx?id=1,依此类推。

问题是,在我的 IIS 日志中,我看到 /Default.aspx?id=1 的 GET 请求,而不是 /sports 的请求。

这种代码在IIS6下完美运行。

由于必须实现一些业务逻辑,因此不能选择使用 Microsoft Rewrite 模块。

Thanks.

EDIT:

看来我的处理程序在管道中太早了,但是如果我将逻辑移至稍后的事件,则整个重写操作将不起作用(为时已晚,StaticFileHandler 接受了我的请求)。

我用谷歌搜索了又搜索,四处询问,不敢相信没有人遇到这个问题?

EDIT:

哎呀!以下是我在 IIS 论坛上找到的内容:

“这是因为在集成模式下,IIS 和 asp.net 共享一个公共管道,并且 IIS 现在可以看到 RewritePath,而在 IIS6 中,IIS 甚至看不到它 - 您可以通过使用经典模式来解决此问题,其行为如下IIS6。”

最终更新: 请看一下我的回答如下 https://stackoverflow.com/questions/353541/iis7-rewritepath-and-iis-log-files/579141#579141,我已经在生产环境中使用了一年多的结果更新了它。


经过一番研究,我终于找到了解决问题的方法。

我已将对 Context.RewritePath() 方法的调用替换为新方法(在 ASP.NET 3.5 中引入)Context.Server.TransferRequest() method.

现在看来这是显而易见的,但 IIS Core 团队的高级开发工程师并没有想到这一点。

我已经测试了它的会话、身份验证、回发、查询字符串等问题,但没有发现任何问题。

明天我会将更改部署到一个流量非常高的站点,我们很快就会知道它的实际工作原理。 :)

我会带着更新回来的。

更新:该解决方案仍然不完全在我的生产服务器上,但它已经过测试并且确实有效,据我所知,到目前为止,它是我的问题的解决方案。如果我在生产中发现任何其他内容,我将发布更新。

最终更新:我已经在生产中使用这个解决方案一年多了,事实证明它是一个良好且稳定的解决方案,没有任何问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IIS7、RewritePath 和 IIS 日志文件 的相关文章

  • 是否可以将向量的一部分作为向量发送给函数? [复制]

    这个问题在这里已经有答案了 我想看看是否可以将向量的一部分传递给函数 以便它显示为函数的法线向量 更重要的是 我希望这可以在 O 1 的常数时间内完成 我不想迭代向量来创建一个新向量 事实上 我还希望在下面的示例中将新向量的大小更改为 40
  • 如何修改道路网络的 L 系统?

    向大家问好 我目前正在研究道路网络的程序生成 并偶然发现了 L 系统算法 根据我从有关该主题的各种科学论文以及有关该主题的论文的进一步论文中了解到 算法更改为使用 全局目标和局部约束 其中修改所采取的路径以适应地形等输入值和人口密度 现在我
  • 使用 Xlib 捕获鼠标

    我想编写一个简单的 Xlib 程序来改变鼠标行为 举个例子 反转垂直移动 我在捕获事件时遇到问题 我想要代码 捕获控制器位置的变化 我向上移动鼠标 MotionEvent 计算新的光标位置 new x difference x 设置新的光标
  • 测试 WebApi 控制器时如何生成 Asp.net 用户身份

    我正在使用 Web API 2 在 web api 控制器中我使用过GetUserId使用 Asp net Identity 生成用户 ID 的方法 我必须为该控制器编写 MS 单元测试 如何从测试项目访问用户 ID 我在下面附上了示例代码
  • 如何根据post数据阻止请求?

    在 IIS 中 我可以根据 url 或查询字符串设置请求过滤 这允许我阻止一些恶意 GET 请求 但这对发布数据不起作用 Example 如果我在 web config 中设置它
  • 接收UDP数据包

    假设我的程序通过网络 UDP 发送 1000 字节 它是否保证接收方将 一批 接收 1000 个字节 或者他可能需要执行多次 读取 直到收到完整的消息 如果后者为真 我如何确保同一消息的数据包顺序不会 混淆 按顺序 或者协议可能保证这一点
  • 如何以编程方式区分不同的 IOException?

    我正在对写入 Process 对象的 StandardInput 流的代码进行一些异常处理 Process 有点像 unix head 命令 它只读取输入流的一部分 当进程终止时 写入线程会失败并显示 IOException The pip
  • FormsAuthentication.SetAuthCookie() 是否需要重定向?

    检查用户的凭据并确认其良好后 我正在使用FormsAuthentication SetAuthCookie Username false 对用户进行身份验证 然后在母版页中我使用Page User Identity IsAuthentica
  • 不区分大小写“包含(字符串)”

    有没有办法让下面的返回为真 string title ASTRINGTOTEST title Contains string 似乎没有过载允许我设置区分大小写 目前我将它们都大写 但这很愚蠢 我指的是i18n http en wikiped
  • 使用 ASP.NET Core Identity 将令牌保存在 Cookie 中

    我想在我的 身份 生成的 cookie 中保存一些内容 我目前正在使用文档中的默认身份设置 启动 cs services Configure
  • 如何声明和定义具有推导类型的静态成员?

    我需要定义一个具有复杂 许多模板参数 类型的静态成员 不是 constexpr 因此 希望有这样的东西 struct X static auto x makeObjectWithComplexType 但它不是 C 所以我尝试解决它 并认为
  • IBM Rhapsody 中状态图终止连接器的理解

    在IBM Rhapsody中 如果我使用new创建了一个类的实例 那么我们是否必须通过调用delete来处理内存的释放 或者Termination Connector将在其状态图中通过内存释放来处理其销毁 如果您使用 C 和 OXF 对象执
  • 将引用托管代码中分配的内存的指针传递给非托管代码

    我在 C 中分配了一个大的 char 缓冲区 并且希望将指向此数据的指针传递给 DLL 中的未管理的 c 函数 现在我认为要使其工作 必须修复字符缓冲区 以便 GC 在函数工作时无法移动它 如果是这样 我会声明缓冲区已固定并调用 UNSAF
  • 如何从与桌面交互的应用程序与 Windows 服务进行通信?

    使用 Net 与服务交互的最佳方式是什么 即大多数托盘应用程序如何与其服务器通信 如果这个方法也是跨平台的 那就更好了 在 Mono 中工作 所以我猜远程处理已经过时了 Edit 忘了说了 我们仍然需要在现场支持 Windows 2000
  • 将对象转换为泛型类型

    我已经有一段时间没有睡觉了 所以这可能比我想象的要容易 我有一个通用类或多或少是这样的 public class Reference
  • 显式调用静态构造函数

    我想为下面的课程编写单元测试 如果名称不是 MyEntity 则 mgr 应为空 消极的单元测试 使用 Manager 私有访问器 我想将名称更改为 Test 以便 mgr 应该为空 然后会验证 mgr 值 为了实现这一点 我想显式调用静态
  • OledbConnection.Dispose() 是否关闭连接? [复制]

    这个问题在这里已经有答案了 可能的重复 如果使用 using 子句 是否需要关闭 DbConnection https stackoverflow com questions 12033998 is there any need to cl
  • MDI 窗体中的子窗口对接

    我有一个 MDI 表单和其中的一些子表单 我将子窗体停靠到 MDI 窗口的不同区域 但是当任何子窗体失去焦点时 其他停靠的窗体将重新排列 由于混乱 我准备了一组图像来展示该行为 Image1 单击任何窗口之前 Image2 点击窗口2后 问
  • Security.h 中结构的 macOS 文档

    我正在尝试使用Security h通过 Java 和 JNA 的 macOS 框架 这意味着我需要将某些结构重建为 Java 类 问题是 当我查看文档中的结构时 this one https developer apple com refe
  • Phong 着色问题

    我正在根据以下内容编写着色器冯模型 http en wikipedia org wiki Phong reflection model 我正在尝试实现这个方程 其中 n 是法线 l 是光线方向 v 是相机方向 r 是光反射 维基百科文章中更

随机推荐

  • Android 中 LinearLayout 的捏合缩放

    我需要缩放包含图像 文本视图等的整个布局 我发现缩放功能仅适用于图像视图 创建自定义Layout调用的类ZoomeLinearLayout ZoomLinearLayout java public class ZoomLinearLayou
  • 在 VSCode 中打开 2 个文件夹?

    我们真的不能在 VS Code 上同时打开两个文件夹吗 根据我的观察 假设我有两个文件夹 即 f1 和 f2 当我打开 f1 然后如果我想打开 f2 它会自动关闭文件夹 f1 那么 这个问题可以解决吗 或者是 VS 代码中的默认值 None
  • Delphi 6 IDE 和应用程序可以在 Windows 7 64 位上运行吗?

    我有一个使用 Delphi 6 开发的商业应用程序 我一直在 windows xp 32 位下开发 但即将获得一台使用 Windows 7 64 位的新开发机器 Delphi 6 能否在新环境中安装和工作 开发的应用程序还使用 BDE 在
  • Windows docker 容器上的 Chrome 无法工作

    我正在尝试在 Docker 容器上运行 Google Chrome 这个docker容器是基于microsoft windowsservercore ltsc2016 我想使用 docker 容器构建 AngularCLI 应用程序 因此
  • 如何覆盖 jQuery UI 小部件样式并保留功能

    我在用jQuery用户界面 http jqueryui com 对于内部应用程序 我正在寻找一种简单的方法来删除给定小部件实例上 jQuery UI 提供的所有样式信息 我对任何事情都持开放态度 但可重用的 JavaScript 解决方案将
  • 我可以在 DTLS-SRTP 加密中指定自己的加密密钥吗

    在 Chrome 中的 webrtc Web 应用程序中 我曾经通过覆盖 SDP 中的加密信息来指定自己的加密密钥 我现在正在迁移我的 webrtc Web 应用程序以使用 DTLS SRTP 进行加密 启用 DTLS 后 有没有办法告诉
  • gnu 排序中的 --general-numeric-sort 和 --numeric-sort 选项有什么区别

    sort提供两种数字排序 这是来自手册页 g general numeric sort compare according to general numerical value n numeric sort compare accordin
  • 应用程序未收到 android.intent.action.DOWNLOAD_COMPLETE 意图

    我正在编写一个简单的应用程序 当通过下载管理器在 Android 设备上完成任何下载时 该应用程序会收到通知 我已经为此创建了一个广播接收器 并在清单文件中设置了意图过滤器 如下所示 但是 下载完成后我的广播接收器不会被调用 我是否还需要设
  • Ruby Enterprise 使用绿色线程吗?

    我想知道这个 除了this http www rubyenterpriseedition com documentation html overview of ruby enterprise edition ree 线程调度程序错误修复和性
  • ASP.NET Membership ChangePassword 控件 - 需要检查以前的密码

    我有一个保存旧密码的新表 我需要检查是否有匹配项 如果存在匹配项 我需要 ChangePassword 控件来不更改密码 我需要告诉用户该密码已被使用 并设置一个新密码 我似乎无法中断更改密码的控制 也许我使用了错误的事件 这是我的一段代码
  • 是什么导致此页面上出现完整请求?

    考虑以下 jsf 页面
  • 使用私有成员创建对象的技术差异

    Here http www adequatelygood com JavaScript Module Pattern In Depth html我发现了一种启用对象私有成员的 javascript 模块模式 如果我没猜错的话 可以这样写 v
  • 避免因变量为 NULL 而出现 IF ELSE

    我有一些代码 其中 WHERE 子句中使用的变量可以为空 因此 我必须使用 IF ELSE 查询数据来检查 NULL 有没有办法在一个查询中写入 DECLARE OrderID UNIQUEIDENTIFIER IF OrderID IS
  • 如何禁用 select2 中的选项

    我想用 select2 来获取用户的偏好 选择一个选项后 其他 select2 中的选项应禁用 Sample 偏好 1 选项1 选项2 选项3 选项4 偏好 2 选项1 选项2 选项3 选项4 偏好 3 选项1 选项2 选项3 选项4 偏好
  • 按日期降序排序时,“使用临时”会减慢查询速度

    我有一个日志条目表 以及大约 100 个可能的日志代码的描述表 CREATE TABLE log entries logentry id int 11 NOT NULL AUTO INCREMENT date datetime NOT NU
  • Mongodb 地理位置边界搜索/查询

    我有一个包含位置 框 方形区域 列表的文档 每个框由 2 个点表示 左下或西南 右上角或东北 文档 例如 locations bottom left top right bottom left top right bottom left t
  • 为什么HMS PushKit需要android.permission.REQUEST_INSTALL_PACKAGES

    最近我用这个gradle代码添加了HMS PushKit SDK implementation com huawei hms push 5 0 4 302 之后 我注意到我的应用程序已添加到应用程序列表中 可以访问安装来自未知来源的应用程序
  • Java中如何动态创建变量? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要创建新变量Strings这样 String person1 female String person2 female String
  • ASP.NET Web 应用程序缓慢

    我有一个在 IIS 7 5 NET Framework 4 0 服务器上运行的 asp net Web 应用程序 每当我导航到此服务器上运行的任何网页时 初始加载大约需要 12 秒 之后 导航速度很快 大约 0 5 秒 即使是在点击率较 高
  • IIS7、RewritePath 和 IIS 日志文件

    我在 IIS7 上运行的 ASP NET 3 5 应用程序中使用 Context RewritePath 我正在应用程序 BeginRequest 事件中执行此操作 并且一切正常文件 sports 的请求被正确重写为default aspx