存档

2016年4月 的存档

IIRF 在windows server 2012 IIS8上崩溃的问题

2016年4月3日 没有评论

IIRF 是一个很不错的IIS辅助工具,纯c编写,用来实现 URL重写功能很是方便。IIS这块以前没有apache/nginx之类的方便,好在后来有了自己的URL重写模块。

衣服自己洗前几天把服务器升级到windows server 2012了,至于原因么后续再说,升级后发现其中的一个网站 IIRF配置无法使用,总是崩溃。

崩溃出现在 Redirect 上,对于 Rewrite 没有影响。折腾了很久,今天终于在stackoverflow上找到了解决方法,分享出来方便各位同学。其实早就有人提出这个问题了,但是官方的版本一直没有合并进去,可以参考这里:https://iirf.codeplex.com/workitem/34722

签出最新的代码,然后打开 Rewriter.c 文件,找到 DoRewrites 方法,大约在这个方法的最后几行,有一个函数调用:

pfc->ServerSupportFunction (pfc,
SF_REQ_SEND_RESPONSE_HEADER,
(PVOID) codestring,  // eg, “302”
(DWORD) buf,         // headers to add
0);

 

把实参的类型由DWORD修改为 ULONG_PTR ,然后重新编译即可。

网上也有人提供编译好的版本(还支持IPv6哟),可以直接下载,这里

还有另外一个思路就是使用IIRF的32位的特定版本,由于多数服务器都是64位的,感觉有点强迫症的感觉,就不多介绍了。

分类: 日常 标签: ,