2012-02-02 31 views
0

此錯誤已在其他地方報告在stackoverflow上,但沒有一個答案似乎適用於我情況。發佈一個簡單的.NET Web服務會產生IIS「使用註冊爲allowDefinition ='MachineToApplication'的部分是錯誤的...」

我發佈一個簡單的.NET Web服務(的.asmx),當我檢查在生產環節,我會見了著名的錯誤:

"It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS."

我已經通過了基礎已經,即這三個最受歡迎的提示:

1 /通過在IIS等中右鍵單擊,該目錄已創建爲「應用程序」。它運行在它自己的應用程序池中。

2 /沒有包含任何多餘的web.config文件的子目錄。這只是一個web.config。

3 /我確保名稱空間與Web服務定義匹配,所有基本的東西。無論如何,該項目在本地運行良好,並且在部署到測試服務器時也可以正常運行。這讓我想到了prod服務器上的「權限問題」,但是由於正常的IIS網站運行正常,我感到茫然。

所以我猜我問的是:是有這個錯誤的第四大最流行的原因,我「米失蹤

哦,Web服務應用程序設置爲允許Web服務要求在IIS上安裝.NET的所有版本

此外,我很樂意將這種傳統方法放在後面,併爲WCF放棄.asmx;但是,這是我負責目前推出的一部分代碼

謝謝!

+0

您的應用程序池運行時版本是否與您的應用程序的預期版本相匹配(例如2.0與4.0) – 2012-02-02 02:33:02

+0

謝謝,我將在下面檢查。 – LesterDove 2012-02-02 04:08:55

回答

1

您需要使s你應該在你的應用程序池中選擇正確的.net框架版本。您可以通過進入IIS管理器並轉到「應用程序池」節點來檢查這一點。右鍵單擊連接到包含您的服務的網站的應用程序池,然後選擇「基本設置」(該選項也應位於窗口的左側欄中)。然後從下拉菜單中選擇適當的框架版本。如果需要在不同版本的框架上運行,您可能需要專門爲子應用程序創建新的應用程序池。

如果父站點正在使用.net 4.0,則您的webservice可能會繼承該站點,反之亦然(2.0)。

因此總之,嘗試將您的應用程序池切換到不同的框架版本,並查看是否清除它。

+0

謝謝,這是我沒有檢查過的一件事。 (沒有服務器訪問直到AM,敬請期待...) – LesterDove 2012-02-02 04:08:09

相關問題