IIS8上のWCF; * .svcハンドラーマッピングが機能しない


272

2012ビルド8400のIIS8でwcfサービスを実行しようとしています。

Webロールをインストールするときに、wcfのもの(3.51未満)が2008のように見つかりませんでした。

インストール時にsvcハンドラーマッピングが見つからなかったので、次のようにしました。

%windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe i

これでハンドラーマッピングができましたが、それでも取得できます。

The resource you are looking for does not have a handler associated with it.

(静的ファイルハンドラーを削除しました。)

サイトは偽装を使用するために、従来のパイプラインを使用しています。

回答:


553

すなわち:

  1. 実行Server Manager(タスクバーとスタートメニュー)
  2. 管理するサーバーを選択します(おそらくローカルサーバー)
  3. Roles and Features」セクションまでスクロールします。
  4. Add Role or Featureタスク」ドロップダウンから「」を選択します
  5. Add Role or Feature Wizard」ダイアログでFeatures、左側のページのリストにある「」までクリックします。
  6. 展開し".Net 3.5"たり".Net 4.5"、インストールされているものに応じて。(roles持っていない場合は、「」画面に戻って追加できます。
  7. WCF Services」の下の「」のチェックボックスをオンにしますHTTP-Activation。必要な場合は、http以外のタイプ(tcp、名前付きパイプなど)を追加することもできます。
  8. "Install"ボタンをクリックします。

6
私はWindows 8(IIS 8を使用)を使用しているため、これは私の場合は機能しませんでした。
Josh Mouch、2012年

9
最初にv3.0ディレクトリからServiceModelReg.exe –iを実行した場合は、ServiceModelReg.exe –uaも実行して、元に戻す必要があります。
スコットアンダーソン

14
コマンドラインから:dism / Online / Enable-Feature / FeatureName:WCF-HTTP-Activation / All
Richard

4
gyorgybalassy.wordpress.com/2012/09/24/…とは何ですか?どちらが良い方法ですか?
Kiquenet 2013

9
文字通り「サーバーの役割」ページを1時間見つめていました。[次へ]をクリックするか、左側の[機能]をクリックするだけだとは思いませんでした。o_O +1
Dan Bechard

219

>で有効HTTP Activationにする必要がありました.NET Framework 4.5 Advanced ServicesWCF Services

HTTPアクティベーションを有効にする


10
これは、サーバーマネージャーのないWindows 8で行う必要があることです
Simon_Weaver 2013

2
これは、Windows 8およびWindows 8.1でWCFサービスをホストしているときの答えです
vcRobe

httpアクティベーション。http / httpsを使用しているかどうかは関係ありませんか?したがって、それは両方の要約名ですか、それともそこに必要な区別はまだありますか?
トーマス

2
IIS 10で同様の問題に直面しましたが、Http Activationはデフォルトでオフになっています。これを有効にすると、問題はすぐに解決されました。ありがとう!
dhruvpatel 2015

4
Windows 10、IIS 10で機能
watbywbarif 2016年

45

「Windowsの機能を有効または無効にする」で以下をオンにします

a).Net Framework 3.5-WCF HTTPアクティベーションと非HTTPアクティベーション

b)WCF​​サービスのすべて


1
.Net Framework 3.5をオンにするだけでした
-WCF

40

IIS8を搭載したWindows 8

  • ヒット Windows+X
  • 選択Programs and Features(リストの最初の項目)
  • Turn Windows Features on or off左側を選択
  • 拡大する .NET Framework 4.5 Advanced Services
  • 拡大する WCF Services
  • 有効にする HTTP Activation

プログラムでそれを行うためのPowerShellスクリプトはありますか?
Kiquenet 2013

サーバーが1台なので、高度な
Powershellを使い

28

最近はスクリプトでこれを行うのが好きです

REM install the needed Windows IIS features for WCF
dism /Online /Enable-Feature /FeatureName:WAS-WindowsActivationService
dism /Online /Enable-Feature /FeatureName:WAS-ProcessModel
dism /Online /Enable-Feature /FeatureName:WAS-NetFxEnvironment
dism /Online /Enable-Feature /FeatureName:WAS-ConfigurationAPI
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

REM Feature Install Complete
pause

2
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45私には感謝で十分だった...
Shubh

これは、Windows Serverの新しい2012R2 +バージョンでこれを修正する最良の方法です。おそらく2012でも動作しますが、ありがたいことに、これを試してみる人はもういません。
Paul Sturm

そしてPowerShell スクリプトを使用していますか?
Kiquenet

@KiquenetこれらのコマンドはすべてPowerShellで機能します。Shubhのコマンドを直接コピーしようとした場合は、最初のコマンドの後に2番目のdismコマンドの前に改行またはセミコロンを追加する必要があります。
kb4000

10

Windows Server 2012でのエラーは次の方法で解決できました。

  1. 「役割と機能の削除ウィザード」からの削除.NET Framework 4.5の機能/ASP.NET 4.5とそれに依存するすべての機能
  2. 削除された機能を再インストールします。

インストールの順番が原因のようです。

また、WCFサービスの下にHTTPアクティベーションがインストールされていることを確認してください。


私はこれを行い、サーバーを殺したようです。iisの下でasp.netのものだけをアンインストールしましたが、リモートで黒い画面とコマンドプロンプトウィンドウが表示されます。サーバーが「サーバーコア」になっているようなものです... :(
MGOwen

@MGOwenは、.net 4.5の一部の機能を削除すると、サーバーグラフィカルシェルも削除されるように見えます。これは、いくつかのコマンドで再度追加できます。
John

3

Windows 8マシンの場合、「サーバーマネージャー」アプリケーションはありません(少なくとも私はそれを見つけることができませんでした)。

問題は解決できましたが。次の操作をどの順序で実行したかはわかりませんが、次のアクションの1つまたはいくつかが役立つように見えます。

  1. 「Windowsの機能をオンまたはオフにする」で以下をオンにします。a).Net Framework 3.5-WCF HTTP Activation and Non-Http Activation b)WCF​​ Services(この質問への回答の1つで指定)

  2. 「%windir%\ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation \」フォルダの「ServiceModelReg.exe –i」を実行しました

  3. 2つのコマンドを使用して登録されたASP.NET 2.0(フォルダーC:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727内):

    aspnet_regiis -ga "NT AUTHORITY \ NETWORK SERVICE" aspnet_regiis -iru

  4. PCを再起動した結果、アクション## 3および4の結果、ASP.NET構成で何かが壊れたように見えます

  5. アクション#2を繰り返す

  6. 「プログラムと機能」から他の2つのオプション、.Net Framework 4.5 Advanced Servicesをインストールします。ASP.NET 4.5とWCFサービスの両方のサブオプションをチェックしました

  7. アプリプールを再起動します。

シーケンスはちょっとクレイジーですが、それは私に役立ち、おそらく他の人にも役立つでしょう


重要な点は、HTTPアクティベーションをオンにすることです。
Umar Farooq Khawaja 2013年



2

PowerShellを使用して、必要な機能を次のようにインストールできます。

Add-WindowsFeature 'NET-HTTP-Activation'

1

Windows 10(クライアント)では、これを使用してスクリプトを作成することもできます

Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName WCF-HTTP-Activation45 -All

これはサーバーskusとは異なるコマンドであることに注意してください


0

.NETフレームワークのHTTPアクティベーション機能であるWindowsプロセスアクティベーション機能も必要です


0

これは本当にばかげたものでした。これをSVC 404の問題で最も一般的なスレッドの1つであるため、ここに追加します。

私は自分のプロジェクト設定 '\ Web \ Project URLに貼り付けていました:

http://blah.webservice.local.blahblah.com/Blah.svc

そして、いくつかの未知の理由(これを1000回行った)で、.svcファイルの名前が最後にあることがすぐにはわかりませんでした。

DOH!

WCFテストクライアントからアドレスを貼り付けたばかりで、十分にチェックしていませんでした。これがバックグラウンドで実行したことは、.svcアドレスでIISアプリケーションを作成することであり、IISから何も得られませんでした。どうすれば.svcファイルにヒットすることができなかったのか理解できませんでした。

単純な修正は、明らかに、IISでアプリケーションを削除し、プロジェクトのURLを変更するだけです。

これでほぼ20年経った後も、少年のエラー/新人のミスをすることができます。これが誰かを助けることを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.