Windows 8マシンのIISでWCFサービスを提供しようとすると、よく知られたエラーが表示されます
拡張機能が設定されているため、リクエストしているページは配信できません。ページがスクリプトの場合、ハンドラーを追加します。ファイルをダウンロードする必要がある場合は、MIMEマップを追加します。
古い回避策はaspnet_regiis -i
を実行することでしたが、このコマンドはWindows 8で非推奨になり、応答This option is not supported on this version of the operating system. (...)
が生成されたようです。
回避策は何ですか?
(通常のaspx
ページを既に有効にしているので、ほとんどのIIS構成は正常に見えます。)
簡単に思えた。コントロールパネルのPrograms and Features -> Turn Windows features on or off
を使用してWCFサービスを有効にする必要があります。 mdsnに関するこのブログ投稿 の説明に従って、.NET Framework Advanced Services -> WCF Services
に移動し、HTTP Activation
を有効にします。
コマンドプロンプト(管理者として)から、次を実行できます。
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
Windows Server 2012の場合、ソリューションはfaesterに非常に似ています(上記を参照)。サーバーマネージャーから、Add roles and features
をクリックし、適切なサーバーを選択して、Features
を選択します。 .NET Framework 4.5 Features
の下にWCF Services
が表示され、その下にHTTP Activation
があります。
IIS 8.0で次の2つの手順を実行してください
新しいMIMEタイプとHttpHandlerを追加する
拡張子:.svc、MIMEタイプ:application/octet-stream
要求パス:* .svc、タイプ:System.ServiceModel.Activation.HttpHandler、名前:svc-Integrated
これは、faesterのソリューションおよびBill Moonのソリューションと実際には同じソリューションですが、PowerShellで行う方法は次のとおりです。
Import-Module Servermanager
Add-WindowsFeature AS-HTTP-Activation
もちろん、PowerShellからDISM
を呼び出すことを妨げるものは何もありません。