2011-01-11 121 views
0

我在經典模式下在IIS7下運行asp.net應用程序。 我已經創建的腳本映射爲「*」與ISAPI模塊,但是當我執行TXT請求(即使不存在的話),我得到404錯誤有:如何處理ASP.NET中的* .txt請求

通知MapRequestHandler

處理器StaticFile

並且沒有事件在Global.asax或模塊中觸發。 我錯過了什麼嗎?

<system.web> 
... 
<httpHandlers> 
    <add verb="*" path="*" validate="false" type="TestCustomExtensions.TextFileHandler, TestCustomExtensions" /> 
</httpHandlers> 
<httpModules> 
    <add name="text" type="TestCustomExtensions.TextModule"/> 
</httpModules> 
</system.web> 

<system.webServer> 
... 
<modules> 
    <add name="textModule" type="TestCustomExtensions.TextModule"/> 
</modules> 
<handlers> 
    <add name="TextFiles" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> 
</handlers> 
,</system.webServer> 
+0

你已經註冊的處理程序在處理程序映射部分IIS – 2011-01-11 13:03:38

+0

當然,如你所見 – Madman 2011-01-11 13:24:55

回答

0

已解決!

問題出在我的操作系統上。我安裝了64x窗口,但在配置文件中,我設置了32位的ISAPI DLL路徑。所以,爲了解決這個問題,我添加了兩行,以處理32x和64x操作系統。

<add name="TestFiles64" path="*.txt" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> 
<add name="TextFiles32" path="*.txt" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> 
1

你可能需要刪除StaticFile處理程序:

<handlers> 
    <remove name="StaticFile" /> 
</handlers> 

UPDATE

請嘗試以下(在HTTP處理程序的順序很重要):

<handlers> 
    <remove name="StaticFile" /> 

    <add name="TextFiles" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> 
    <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" 
    resourceType="Either" requireAccess="Read" /> 
</handlers>