私は2012ビルド8400でIIS 8で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.
(静的ファイルハンドラを削除しました。)
このサイトは偽装を使用するために古典的なパイプラインを使用しています。
すなわち:
Server Manager
を実行します(タスクバーとスタートメニュー)。Roles and Features
"セクションまでスクロールします。Add Role or Feature
"を選択してくださいAdd Role or Feature Wizard
]ダイアログで、左側のページのリストで[Features
]までクリックします。".Net 3.5"
または".Net 4.5"
を展開します。 (持っていなければ追加するために "roles
"画面に戻ることができます。WCF Services
]の下の[HTTP-Activation
]のチェックボックスをオンにします。あなたがそれらを必要とすることを知っていれば、あなたは非HTTPタイプを追加することもできます(TCP、名前付きパイプなど)。"Install"
ボタンをクリックしてください。HTTP Activation
> .NET Framework 4.5 Advanced Services
でWCF Services
を有効にする必要がありました
「Windowsの機能の有効化または無効化」で以下をオンにします。
a).Net Framework 3.5 - WCF HTTPアクティベーションと非HTTPアクティベーション
b)すべてWCFサービスの下
Windows+X
を打つPrograms and Features
(リストの最初の項目)を選択Turn Windows Features on or off
を選択してください.NET Framework 4.5 Advanced Services
を展開WCF Services
を展開HTTP Activation
を有効にする私は最近スクリプトを介してこれをすることを好む
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
私たちはWindows Server 2012の下でエラーを解決することができた:
それはインストールの順序を縫い合わせることが原因です。
また、WCFサービスの下にHTTPアクティベーションがインストールされていることを確認してください。
Windows 8マシンには「サーバーマネージャー」アプリケーションはありません(少なくとも私はそれを見つけることができませんでした)。
私は問題を解決することができましたが。次の操作をどの順序で行ったのかわかりませんが、次の操作の1つまたはいくつかが役立つように見えます。
A).Net Framework 3.5 - WCF HTTPアクティベーションおよび非HTTPアクティベーションb)すべてWCFサービス(この質問に対する回答の1つに指定されています)の下で、以下をオンにします。
"%windir%\ Microsoft.NET\Framework\v3.0\Windows Communication Foundation \"フォルダ内の "ServiceModelReg.exe –i"を実行しました
2つのコマンド(フォルダC:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727)でASP.NET 2.0を登録しました。
aspnet_regiis -ga "NT AUTHORITY\NETWORK SERVICE" aspnet_regiis -iru
PCを再起動しています...その結果、アクション## 3および4の結果としてASP.NETの構成に問題が発生しました
アクション#2を繰り返します
「プログラムと機能」から他の2つのオプションをインストールします。Net Framework 4.5 Advanced Services。 ASP.NET 4.5とWCFサービスの両方のサブオプションをチェックしました。
アプリプールを再起動します。
シーケンスはちょっとクレイジーですが、それは私にとって助けになり、おそらく他の人に役立つでしょう
Windows 8またはWindows Server 2012でIIS 8を構成する場合、インストールの順序は非常に重要です。
私はIIS 8を設定する際に多くの問題に直面しましたが、ついにこれらのリンクは私を助けました
powerShellを使用して必要な機能をインストールすることができます。
Add-WindowsFeature 'NET-HTTP-Activation'
Windows 10(クライアント)では、これを使ってスクリプトを書くこともできます。
Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName WCF-HTTP-Activation45 -All
これはサーバーskusとは異なるコマンドです。
.NET FrameworkのHTTPアクティベーション機能であるWindowsプロセスアクティベーション機能も必要です
これは私にとって本当に愚かなものでした。これを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年後、あなたはまだ男子生徒の誤り/新人の間違いをすることができます。これが誰かに役立つことを願っています。