我正在将一个客户端的经典ASP Web应用程序移动到一个新的基于IIS7的服务器。 该网站包含一些.js文件,其中包含JavaScript,但也在<%%>标签中的经典ASP,其中包含一堆条件语句,旨在吐出基于会话状态variables的JavaScript片段。 这里是一个简短的文件可能是什么样子的例子….
var arrHOFFSET = -1; var arrLeft ="<"; var arrRight = ">"; <% If ((Session("dashInv") = "True") And ((Session("systemLevelStaff") = "4") Or (Session("systemLevelCompany") = "4"))) Then %> addMainItem("/MgmtTools/WelcomeInventory.asp?wherefrom=salesMan","",81,"center","","",0,0,"","","","",""); <% Else %> <% If (Session("dashInv") = "False") And ((Session("systemLevelStaff") = "4") Or (Session("systemLevelCompany") = "4")) Then %> <% Else %> addMainItem("/calendar/welcome.asp","",81,"center","","",0,0,"","","","",""); <% End If %> <% End If %> defineSubmenuProperties(135,"center","center",-3,0,"","","","","","","");
目前这个文件(例如命名为custom.js)将开始抛出js错误,因为服务器似乎不能识别其中的asp代码,因此不会parsing它。 我知道我需要以某种方式指定.js文件也应该被视为一个.asp文件,并通过parsing它。 但是我不知道如何去做这件事。
这是我迄今为止所尝试的…在HANDLER MAPPINGS下的IIS服务器节点下,我使用以下设置创build了一个新的脚本映射。
请求path:* .js可执行文件:C:\ Windows \ System32 \ inetsrv \ asp.dll名称:ASPClassicInJSFiles映射:仅在请求映射到时调用处理程序:文件动词:所有动词访问:脚本
我也在站点节点本身下创build了一个类似的处理程序。
在MIMEtypes下.js被定义为application / x-javascript
这些都没有工作。 如果我只是简单地重命名文件扩展名为.asp,那么这个应用程序是很难编码的,并且具有100个文件,其中包含了各种名称和位置的.js文件,所以重命名,search和replace是最后一个我有select。
我认为你的步骤是正确的。 我只是在IIS7和7.5的网站级别尝试了这两种情况下,它的作品和传统的ASP代码正确执行。
不知道你的设置有什么问题。 通过查看“sorting列表”,仔细检查脚本映射是否不在StaticFile映射之下。
此外,如果您在64位操作系统上,请确保应用程序池是64位,如果“启用32位应用程序”设置为true,则需要使用asp.dll的32位版本(C:\ Windows \ SysWOW64 \ INETSRV \ ASP.DLL)
你采取的定义是正确的,但iis在你的web.config中写入一个额外的preCondition =“bitness64”手动编辑你的web.config并删除preCondition和一切都会工作