ActiveX dll无法在IIS 8.5上运行
我们有一个经典的ASP应用程序,它使用ActiveX dll来动态生成图像。它正在使用IIS6在Window 2003上工作。但我们正在将其迁移到Windows 2012和IIS 8.5。 DLL在服务器上注册,配置为在其自己的应用程序池(无管理代码,经典管道模式)下运行。它的虚拟目录配置为作为应用程序运行,并具有* .dll的处理程序映射,以指向具有执行访问权限的所有谓词的DLL,这与IIS6的配置相同。
呈现HTML调用DLL的ASP代码如下所示:
<%dim SpokeData
dim JobName
dim NumOfExperts
dim ThisDirNo
dim ThisSel
dim PAPIType
dim JobType
dim SpokeDataShort
SpokeData = trim(Request.QueryString("Data"))
JobName = trim(Request.QueryString("JobName"))
NumOfExperts = trim(Request.QueryString("Exp"))
PAPIType = trim(Request.QueryString("PAPIType"))
JobType = trim(Request.QueryString("JobType"))
CalcDate = trim(Request.QueryString("Date"))
For ScaleNo = 1 to 20
ThisSel = Mid(SpokeData,(ScaleNo*2),1)
ThisDirNo = Mid(SpokeData,(ScaleNo*2)-1,1)
If ThisSel = "1" then SpokeDataShort = SpokeDataShort & ThisDirNo else SpokeDataShort = SpokeDataShort & "0"
Next
Response.Write("<div id='Wheel'><img style='margin-left:20px' src='http://www.example.com/jpwheel/jpwheel.dll?Handler=Render&nori=" & PAPIType & "&dir=" & SpokeDataShort & "&" & Now & "'></div>")
%>
然后HTML看起来像这样:<img src="http://www.example.com/jpwheel/jpwheel.dll?Handler=Render&nori=N&dir=55555050555000000000&11/05/2015 16:05:24" style="margin-left:20px">
如果我尝试直接下载它,我会收到500错误(不幸的是没有错误日志)。
它正在IIS6上运行,而不是在IIS8.5上运行。任何人都可以将ActiveX服务器端DLL迁移到IIS8.5吗?我还没做的一件事是检查DLL的依赖关系,有人可以为此推荐一个工具吗?我猜测Windows 2003即将结束,很多人都遇到了这样的问题。
答案 0 :(得分:2)
问题是由使用不正确的处理程序映射引起的。我把它设置为脚本映射。它需要是一个模块映射,其中包含以下详细信息:
请求限制:所有动词,需要访问:脚本
功能权限:读取,脚本,执行
所以它现在正在运作。