2014-08-27 79 views
0

我得到這個錯誤:WCF錯誤404.17是什麼意思?

404.17 - The requested content appears to be script and will not be served by the static file handler 

我運行在Windows 8,VS2013 IIS 8.5。我的應用程序池設置爲.NET 4(我相信從.Net 2到.Net 4的遷移是導致此問題的原因)。我的服務代碼是.NET 3.5。

我檢查了.NET 3.5和4.5都是作爲功能啓用的,以及用於ISAPI擴展和過濾器的擴展性。 我嘗試:

  • 卸載和重新安裝ASP.NET 4.5
  • 運行ServiceModelReg(所建議的here

我然後最終通過啓用 「HTTP激活」(如建議here固定它)。

我的問題是:這個錯誤實際上是什麼意思?我基本上已經通過盲目搜索網絡並嘗試各種建議來修復它,但是如果我明確瞭解這個錯誤告訴了我什麼,我可能會更快地做到這一點。

編輯:

在這個崗位上做出了有益的和有建設性的意見後,我想我會盡力澄清我問這裏到底是什麼。

顯然,錯誤信息本身確實有道理(在某種程度上)。 static處理程序將無法運行script。那麼,HTTP Activation是做什麼的?爲什麼ServiceModelReg會提供幫助?爲什麼從.Net2移到.Net4時會出現這個問題?

+0

「這是什麼意思」? Seriosuly?你有沒有考慮閱讀你粘貼的其餘部分?讀取「請求的內容似乎是腳本並且不會由靜態文件處理程序提供」的部分?這是不是很清楚,我的意思是,一旦你讀了它?請添加內容。 – TomTom 2014-09-16 08:05:29

回答

0

錯誤消息告訴你:

The static file handler is about to serve the source code of your server-side script instead of another handler executing it. That probably is not what you want to happen, so I'm throwing an exception instead.

此錯誤是你的處理程序沒有樹立正確的指示。在你的情況下,對你的服務的請求應該被Http激活服務(我猜測是一個IHttpModule)拾取,但是因爲它不是(模塊沒有激活),它最終被靜態文件處理程序作爲最終的回退。

ServiceModelReg安裝或重新安裝正確的WCF組件。顯然這可能會解決這個問題,如果你沒有完全設置WCF。

Http激活模塊(System.ServiceModel.Activation.HttpModule)在machine.config文件中註冊。 .NET 2.0和.NET 4.0有不同的machine.configs。 Http激活功能也分別存在於兩個.NET版本中。