We are porting a working PERL CGI site from IIS 5 to IIS6 and from version 5.6.1 build 635 to 5.8.8 build 820. Thought it would be easy but turns out that breaks the code. Problem is that environment variables on new system do not have same values as in old system (notwithstanding expected url differences). However, some variables now are filled when they were previously empty. That breaks our frame code. See following example:
OLD (IIS 5 on Win2K)
url == http://amlnet:8001/cgi/xena_tool_v1-x.cgi
PathInfo ==
SelfUrl == http://amlnet:8001/cgi/xena_tool_v1-x.cgi
http_referer ==
query_string ==
frame_name ==
in sub print_frameset - script == http://amlnet:8001/cgi/xena_tool_v1-x.cgi
NEW (IIS 6 on Win2003)
url == http://qdcws1118:8001
PathInfo == /cgi/xena_tool_v1-5.cgi
SelfUrl == http://qdcws1118:8001/cgi/xena_tool_v1-5.cgi
http_referer == http://qdcws1118:8001
query_string ==
frame_name ==
in sub print_frame script == http://qdcws1118:8001
The path_info and http_referer results are not the same and items like Path Info == /username=/left/ don't work correctly. As a result, anything with frames just send back 404 errors.
BTW, I am not the programmer, just web admin trying to help out.
Anyone have any insights on this? Programmer says IIS 5 was broken and the original code works around this. I cannot find any documentation that confirms this.