我正在开发一个小型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之间),因为它不是服务器操作系统?
欢迎任何关于我可能遗失的事情的想法。
感谢。
答案 0 :(得分:2)
固定。
除非您需要专门过滤,否则不需要处理程序映射,只需在服务器级别安装模块,然后在站点级别删除不需要模块的站点。
IIS中的应用程序池高级设置 - 将“启用32位应用程序”设置为“TRUE”以测试POC。
然后重建x64平台的DLL,卸载现有模块,安装x64,将32位应用程序设置为FALSE,然后测试x64模块。
OutputDebugString调用现在也在DbgView中显示。