2012-07-12 79 views
171

當我嘗試擔任IIS的WCF服務在Windows 8機器,我得到了衆所周知的錯誤無法在IIS服務WCF服務在Windows 8

您請求的頁面不能因爲送達擴展配置。如果頁面是腳本,請添加處理程序。如果文件應該被下載,添加一個MIME映射。

舊的解決辦法就是跑aspnet_regiis -i但該命令似乎已經在Windows 8中被棄用產生響應This option is not supported on this version of the operating system. (...)

會有什麼工作呢?

(我已成功啓用定期aspx頁面了,所以大部分IIS配置似乎健康)

+0

有關更多信息,'ASPNET_REGIIS -i'命令預Windows 8的用戶,看到這個鏈接:http://www.aspsnippets.com/Articles/ASPNet-IIS7-The-page-you -are要求時,不能待送達,因爲即用的擴展配置,如果最頁面是-A-腳本附加一個處理程序,如果-的文件,應待下載-add-A-MIME-MAP。aspx – David 2016-08-29 23:57:21

回答

341

似乎是沒有道理的;應在控制面板中使用Programs and Features -> Turn Windows features on or off啓用WCF服務。轉至.NET Framework Advanced Services -> WCF Services並啓用HTTP Activation,如this blog post on mdsn中所述。

從命令提示符(作爲管理員),你可以運行:

C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation 
C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45 

如果你得到那麼錯誤使用下面

C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation 
C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45 
+5

我花時間在IIS管理器中查看。我認爲IIS管理器應該有一個圖標來指導或告訴用戶有關.NET Framework Advnaced Services的信息。 – 2013-07-20 19:28:08

+0

使用命令提示符我得到錯誤「操作已完成,但未啓用WCF-HTTP激活功能,可能未啓用必需的父功能。您可以使用/ enable-feature/all選項自動啓用每個父母功能,如果父功能已啓用,請參閱日誌文件以進行進一步的診斷。「。我使用了GUI方法來了解我正在開啓的工作。 – 2014-07-31 08:08:17

+5

我得到了與Ben Anderson相同的「需要的父功能可能未啓用」錯誤,並嘗試了錯誤消息中的建議(添加了「/ all」參數),然後正常工作:DISM/Online/Enable- Feature/all/FeatureName:WCF-HTTP-Activation45'。 – 2015-01-16 22:25:01

84

對於Windows Server 2012,該解決方案非常相似(見上文)。從服務器管理器中,單擊Add roles and features,選擇適當的服務器,然後選擇Features。在.NET Framework 4.5 Features下,您會看到WCF Services,在此之下,您會看到HTTP Activation

+0

謝謝!但是.Net 4呢?你認爲啓用這個功能對於.Net v4.0來說是一樣的嗎? – 2013-02-28 14:26:00

+0

@AladdinGallas,適用於.NET 4.0和.NET 4.5。 – 2013-07-19 01:26:02

+1

在任何現有的Web應用程序中,添加Windows功能後還需要執行以下操作: - 啓動inetmgr - 打開「處理程序映射」 - 檢查擴展名* .svc的svc-ISAPI映射是否存在。如果沒有,請使用「還原爲父級」操作從父網站複製它們。 請注意,這假設自定義處理程序映射是在web.config中爲應用程序配置的,如通常在IIS7 +中的情況。如果不是,執行「還原爲父項」時將失去這些內容。 – 2014-07-30 06:58:56

8

請不要在IIS中的以下兩個步驟8.0

添加新的MIME類型&的HttpHandler

  1. 擴展:.SVC, MIME類型:應用程序/八位字節流

  2. 請求路徑:* .svc, 類型:System.ServiceModel.Activation.HttpHandler, 名稱:svc-Integrated

+0

最好的解決方案爲我的非常老的Windows 7安裝無法啓用 - .net 3.5(Http和非Http激活)和WAS。太微妙了重新安裝OS – user919426 2015-07-02 09:26:30

+0

這是值得了解這種方法,特別是在創建和添加自己的處理程序時。但是,如果您使用「打開和關閉Windows功能」,您將獲得大部分已知的文件擴展名,這將爲您節省單獨添加每個文件的時間(並找出所有正確的詳細信息)。 – 2016-12-06 08:35:06

3

這確實是相同的解決方案作爲faester的解決方案和比爾月亮的,但這裏是你如何使用PowerShell做到這一點:

Import-Module Servermanager 
Add-WindowsFeature AS-HTTP-Activation 

當然,沒有什麼東西從調用PowerShell的DISM要麼阻止你。

+0

非常好。謝謝你的信息。 – 2016-01-26 15:56:08

-1

您也可以通過打開窗口功能來實現此目的。 enter image description here enter image description here

+1

接受的答案已經解釋了這一點。 – Stijn 2017-11-08 13:38:37

相關問題