2011-09-10 19 views

回答

95

此問題是由您的網站設置爲應用程序池設置中的管道模式導致的。

  • 簡單的方式更改應用程序池模式,以一個已啓用經典的管道。
  • 正確的方法您的web.config/web應用程序將需要更改以支持集成管道。通常,這與移除web.config的一部分一樣簡單。
  • 簡單的方法(壞習慣)添加以下到您的web.config。見http://www.iis.net/ConfigReference/system.webServer/validation

    <system.webServer> 
        <validation validateIntegratedModeConfiguration="false" /> 
    </system.webServer> 
    

如果可能的話,最好的辦法是改變你的應用程序支持集成的管道。 IIS6和IIS7.x之間會有一些更改會導致此錯誤。您可以在這裏找到有關這些更改的詳細信息http://learn.iis.net/page.aspx/381/aspnet-20-breaking-changes-on-iis-70/

如果您無法做到這一點,則需要更改應用程序池,這可能更難以執行,具體取決於您在Web服務器上的可用性。

  • 轉到Web服務器
  • 打開IIS管理器
  • 瀏覽到您的網站
  • 單擊右側操作窗格
  • 在應用程序池高級設置,將其更改爲一個應用程序池具有經典功能。

檢查http://technet.microsoft.com/en-us/library/cc731755(WS.10).aspx有關更改應用程序池

如果你需要創建一個應用程序池與經典的管道,看看http://technet.microsoft.com/en-us/library/cc731784(WS.10).aspx

如果您沒有訪問服務器的詳細信息要進行此更改,您需要通過託管服務器執行此操作,並與他們聯繫以獲取幫助。

隨時提問。

+0

***以編程方式*** _如何知道應用程序池模式是** Classic還是Integrated **? – Kiquenet

+0

@Kiquenet查看[system.web.httpruntime.usingintegratedpipeline](http://msdn.microsoft.com/zh-cn/library/system.web.httpruntime.usingintegratedpipeline.aspx)並在運行時檢查該值 – Kirk

0

我與IIS 7,Win 7 Enterprise Pack有類似的問題。我已經改變了應用程序池在@Kirk答案:有經典管道

更改應用程序池模式,以一個啓用」。但沒有運氣,我

增加一個步驟工作了。 。我 我已經改變了我的網站的.NET Frameworkis v2.0.NET Frameworkis v4.0.ApplicationPool

0

Personnaly我遇到過這個問題,而遷移IIS6網站到IIS7,爲了解決這個問題,我用這個命令行:
%windir%\System32\inetsrv\appcmd migrate config "MyWebSite\"
請務必備份你的web.config

1

這爲我工作:

  1. 刪除最初創建的網站。
  2. 重新創建該網站是在IIS
  3. 清潔液
  4. 生成解決方案

看起來像是去南部時,我最初創建的網站。我討厭類似於「重新啓動機器,然後重新安裝Windows」的解決方案,而不知道是什麼導致了錯誤。但是,這對我有用。快速簡單。希望它可以幫助別人。

16

在你的web.config,確保這些鍵存在:

<configuration> 
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false"/> 
    </system.webServer> 
</configuration> 
9

我改變了我的web.config文件中使用的HttpModule有兩種形式:

IIS:6

<httpModules> 
    <add name="Module" type="app.Module,app"/> 
</httpModules> 

IIS:7.5

<system.webServer> 
    <modules> 
     <add name="Module" type="app.Module,app"/> 
    </modules> 
</system.webServer> 
+1

這爲我做了!歡呼 –

5

Usi ng VS2013 .net 4.5

我有同樣的問題。

錯誤消息頁面上的「最有可能的原因」部分提供了最多幫助。爲了我。它說:「這個應用程序定義了system.web/httpModules部分的配置。」然後在「可以嘗試的東西」部分中,它說:「將配置遷移到system.webServer/modules部分。」

<system.web> 
     <httpHandlers> 
     <add type="DevExpress.Web.ASPxUploadProgressHttpHandler, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET,POST" path="ASPxUploadProgressHandlerPage.ashx" validate="false" /> 
     <add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET" path="DX.ashx" validate="false" /> 
     </httpHandlers> 
     <httpModules> 
     <add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" /> 
     </httpModules> 
    </system.web> 

進入到system.webServer部分。

<system.webServer> 
    <handlers> 
     <add type="DevExpress.Web.ASPxUploadProgressHttpHandler, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET,POST" path="ASPxUploadProgressHandlerPage.ashx" name="ASPxUploadProgressHandler" preCondition="integratedMode" /> 
     <add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET" path="DX.ashx" name="ASPxHttpHandlerModule" preCondition="integratedMode" /> 
    </handlers> 
    <modules> 
     <add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v15.1, Version=15.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" /> 
    </modules> 
</system.webServer> 
+0

嗨,我有類似的問題,你從節點中刪除它嗎?並且只將它留在節點中 – Izzy

+0

已經有一段時間了,但我確信我將它從節點中刪除,並將其粘貼到節點中。很高興它可以幫助! –

0

將應用程序池設置爲經典的.NET appool,並確保經典的.Net應用程序池在Classic管理的piple行上工作。

相關問題