2009-08-13 83 views
9

我們在web.config中指定了一些HTTP處理程序。當我們通過網站項目運行這個網站時,一切正常。但由於某種原因,在將這個代碼移植到一個WAP項目並指向.NET 3.5框架之後,當我在我們的開發箱中啓動IIS 7中的站點時,處理程序不工作。除了我的web.config中已存在的指定自定義處理程序以外,是否需要在IIS7中執行一些特殊的操作?自定義Http處理程序IIS7和ASP.NET

當我查看我們網站的IIS 7中的Handler Mappings部分時,我看到3個處理程序與我們的自定義擴展一起列出。所以它看起來像是在拾取我們的web.config中指定的處理程序。但我知道在非WAP網站工作的處理程序不在這個WAP項目中工作,我不知道爲什麼。

例如,當我們處理的一個嘗試踢在引用的時候,我得到:在「/」應用

服務器錯誤。 解析器錯誤 描述:解析服務此請求所需的資源時發生錯誤。請檢查以下特定的分析錯誤詳細信息並適當修改您的源文件。

Parser Error Message: Could not create type 'jaxHandler'. 

Source Error: 

Line 1: 
Line 2: 
Line 3: using System; 


Source File: /jaxHandler.ashx Line: 1 

Version Information: Microsoft .NET Framework Version:2.0.50727.3074; ASP.NET Version:2.0.50727.3074 

而且,當我嘗試點擊我們網站上的超鏈接在其上有.customextension處理程序似乎並沒有把它撿起來。

所以,當我點擊超鏈接,我得到:

HTTP Error 404.0 - Not Found 
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. Detailed Error InformationModule IIS Web Core 
Notification MapRequestHandler 
Handler StaticFile 
Error Code 0x80070002 
Requested URL http://sss:80/somename.prod 
Physical Path C:\www\sss\somename.prod 
Logon Method Anonymous 
Logon User Anonymous 

(我更換了「somename」和我們公司「SSS」名實文本)以上的隱私的情況。

如果我查看IIS7中的Http Handlers部分,我確實看到* .prod已註冊。這裏是我們如何在我們的web.config下設自定義欄目:

<add name="sss" path="*.prod" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="bitness32"/> 
+0

請詳細說明。 「它不起作用」並沒有說明太多。 – 2009-08-13 16:14:14

+0

好吧,我添加了更多的細節。 – PositiveGuy 2009-08-13 16:24:59

回答

0

你需要做的是建立你的代碼。

您需要將所有C#代碼複製到.ashx.cs文件中。實際上,我建議您創建一個新的.ashx並將C#代碼複製到它的.ashx.cs文件中。

網站動態構建。 Web應用程序項目與Visual Studio中的其他類似項目類型一樣,需要在源文件中包含代碼,並將該代碼構建到程序集中。

+0

中.ashx沒有後面的代碼。我懂了。是的,因爲它在一個網站項目。 Gotcha – PositiveGuy 2009-08-13 16:25:43

+0

你明白了,但說「網站」 - 他們不是項目。 – 2009-08-13 16:44:48

+0

好吧,他們是。 – PositiveGuy 2009-08-13 17:45:10

25

有關IIS7運行ASP.NET應用程序,HttpHandlers的應該在你的web.config的<system.webServer>部分被映射。在IIS6中,它們映射到<system.web>部分。

<system.webServer> 
    <handlers> 
     <add name="HandlerName" 
      path="HandlerPath" verb="*" type="Handler.Type" 
      resourceType="Unspecified" /> 
    </handlers> 
</system.webServer> 
+1

是的,我們已將其映射到webServer,因爲此站點已在我們的prod服務器上運行,在IIS7 – PositiveGuy 2009-08-13 16:16:36