IIS7本机模块问题

时间:2010-11-22 10:31:31

标签: iis-7 module native

我正在开发一个小型IIS7本机模块。

当我在IIS中发出页面请求时,我似乎无法从中获取任何输出。

所以我向后退了一步,试图让其中一个msdn样本先工作。麻烦的是 - 我无法从中获得任何输出......

样本在这里:

http://msdn.microsoft.com/en-us/library/ms693622(VS.90).aspx

我做了以下事情:

。确保我已导出RegisterModule

。将模块构建为Win32 dll

。添加了一个带有web.config的测试站点,以及只显示“hello world”的test.aspx页面

。使用IIS gui

在服务器级别将本机模块添加到IIS中

。在站点级别添加了一个处理程序映射,用于“* .aspx”,所有动词,用于我的模块。

。重新启动IIS

我可以看到我的web.config已更新为包含:

<system.webServer>
    <handlers>
        <add name="EndRequestModule" path="*.aspx" verb="*" modules="MyHttpModule" scriptProcessor="<REALPATHISINHERE>\endRequestModule.dll" resourceType="Unspecified" preCondition="bitness32" />
    </handlers>
</system.webServer>

此时我希望在我发出请求时看到事件查看器中的行 - 但没有。

我还添加了一些“OutputDebugString”调用来尝试查看模块何时加载或响应请求,但我也没有看到任何输出,这让我觉得我错过了一些configesque ...

我正在运行Windows 7旗舰版x64和VS2010 - 是否需要安装或配置其他东西(可能在x86和x64之间),因为它不是服务器操作系统?

欢迎任何关于我可能遗失的事情的想法。

感谢。

1 个答案:

答案 0 :(得分:2)

固定。

除非您需要专门过滤,否则不需要处理程序映射,只需在服务器级别安装模块,然后在站点级别删除不需要模块的站点。

IIS中的应用程序池高级设置 - 将“启用32位应用程序”设置为“TRUE”以测试POC。

然后重建x64平台的DLL,卸载现有模块,安装x64,将32位应用程序设置为FALSE,然后测试x64模块。

OutputDebugString调用现在也在DbgView中显示。