2011-03-23 62 views
3

將ASP.NET webforms應用程序部署到IIS 6.0 64位服務器。某些關聯的DLL僅在3​​2位中可用,因此我在遵循these指令的情況下啓用了32位應用程序。起初我無法查看ASPX頁面,但我忘記了允許ASP.NET Web服務擴展。排序!IIS提供ASPX,但不提供ASMX

最近的測試顯示,在請求ASMX Web服務文件時收到404。從IIS日誌的狀態代碼爲:

人有什麼想法?我預計這會像所有的404一樣愚蠢。

更新1

如果不知道這是相關的,但請求PNG文件時收到相同的錯誤代碼。沒有問題從同一文件夾中提供JPG或GIF ... 什麼!!!值得注意的是,如果我將圖像的擴展名更改爲JPG,則可以請求它。

更新2

請參見下面的回答。

+0

工作是ASMX Web服務使用相同的.NET框架版本的ASPX頁面建? – 2011-03-23 11:44:27

+0

@Simen S - ASMX和ASPX在同一個項目中。 – youwhut 2011-03-23 13:48:20

+0

該.png問題可能是一個註冊表問題 - 確保你有一個關鍵的.png下具有「內容類型」值的HKLM \ Software \ Classes。 (它可能是「image/png」,但這並不重要。)也就是說,我認爲這不應該打破.asmx,我無法想象Server 2003在註冊表中沒有.png內容類型。 – Rup 2011-03-23 13:56:51

回答

7

好的發現了問題。

C:\ WINDOWS \ system32 \ inetsrv \ urlscan \ UrlScan.ini沒有在AllowExtensions列表中指定的PNG和ASMX擴展名。

在我們的IIS服務器構建一個不錯的怪癖!

+0

好東西!今天學了點兒新東西。謝謝! – Nikhil 2011-03-24 09:23:43

2

您是否確定.asmx文件類型,處理程序映射到asp.net dll並且「檢查文件是否存在」在IIS中未勾選?

+0

+1處理程序檢查,但爲什麼他需要解開'檢查文件是否存在'?這通常只適用於MVC或基於路由的應用程序 - 通常ASMX文件確實存在。如果你想糾正處理程序,那麼最好運行'aspnet_regiis' – Rup 2011-03-23 11:53:48

+0

我已經檢查了映射,並且ASPX和ASMX都指向了同一個aspnet_isapi.dll。 – youwhut 2011-03-23 13:47:51

+0

實際上.asmx文件通常會被編譯到二進制文件中,而實際上並不存在於磁盤上。我唯一能想到的其他事情是web.config中的某些內容與IIS處理asmx文件的方式衝突。嘗試將asmx文件的測試處理程序放在適當的位置,只要請求asmx文件,就可以簡單地寫入事件日誌。這將告訴你,如果IIS正確路由呼叫開始與否。 – Nikhil 2011-03-23 14:46:54

0

我已經改變了連接池爲「經典」,從integtrated,並開始對我