我们使用Maverick.net的遗产(非常遗产!)应用:http://sourceforge.net/projects/mavnet/
这在IIS6上工作正常,但是我们现在将它迁移到iis7.5,这应该相当容易,但对我们来说并不适用。我们已将应用程序池配置为在经典模式下使用.net framework v2.0来模拟iis6。
我们在web.config中有以下内容
<httpHandlers>
<add verb="*" path="*.m" type="Maverick.Dispatcher, Maverick" />
</httpHandlers>
</system.web>
<system.webServer>
<handlers accessPolicy="Read, Execute, Script">
<add name="Maverick" path="*.m" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="File" requireAccess="Execute" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
</handlers>
</system.webServer>
在IIS7.5中,对于此应用程序,我配置了以下脚本处理程序映射
请求路径:* .m
可执行文件: C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll // as 每个特立独行的文件
姓名:Maverick
请求限制
如果请求映射到:文件或文件夹
动词:所有动词
访问:执行
maverick.config文件内容如下:
<?xml version="1.0"?><maverick version="2.0" default-view-type="document" default-transform-type="document">
<commands>
<command name="welcome"> <!--Entry page-->
<controller class="PAPI.Controllers.StoreDetails, PAPI"/>
<view name="login" path="login.aspx" type="redirect"/>
<view name="help" path="help.aspx" type="redirect"/>
<view name="error" path="error.aspx" type="redirect"/>
</command>
<command name="setPrincipal"> <!--Sets the security-->
<controller class="PAPI.Controllers.SetPrincipal, PAPI"/>
<view name="login" path="login.aspx" type="redirect"/>
<view name="success" path="instructions.m" type="redirect"/>
<view name="error" path="error.aspx" type="redirect"/>
</command>
<command name="instructions"> <!--Controller for instruction pages-->
<controller class="PAPI.Controllers.GetNextPage, PAPI"/>
<view name="login" path="login.aspx?" type="redirect"/>
<view name="dataProtection" path="dataprotection.aspx" type="redirect"/>
<view name="instructions1" path="instructions1.aspx?" type="redirect"/>
<view name="example" path="example.aspx?" type="redirect"/>
<view name="instructions2" path="instructions2.aspx?" type="redirect"/>
<view name="questionnaire" path="questionnaire.aspx?" type="redirect"/>
<view name="finished" path="finished.aspx?" type="redirect"/>
<view name="error" path="error.aspx" type="redirect"/>
</command>
</commands>
与IIS6 afaik相同。然而,它并不适用于iis7.5。当页面是请求时,例如http://localhost/app/login.aspx,它映射到http://localhost/app/welcome.m,然后返回404.日志文件显示302重定向到welcome.m然后IIS不知道如何处理它,所以配置必须是错误。
我们尝试过使用模块映射而不是脚本映射,但会出现同样的问题。
有没有人对我可能遗失的内容有任何想法?
答案 0 :(得分:0)
所以我的同事通过添加2个配置为使用IsapiModule而不是脚本映射的模块映射来解决这个问题。一个用于32位指向C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll,另一个用于64位指向C:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ aspnet_isapi.dll。
以防万一将来遇到这种情况。