単純な問題。 VS2008を起動して、新しいWCFサービスアプリケーションを作成します。これにより、いくつかのテストメソッドが機能することを示すデフォルトのアプリケーションが作成されます。 CTRL + F5を押すと、実際に機能します。すごい!ただし、これはサポートしたくないVisual Studio開発サーバーを使用しています。
そこで、プロジェクトのプロパティに移動し、ローカルのIIS Webサーバーを使用するように切り替え、仮想ディレクトリを作成して、もう一度CTRL + F5を押します。そして、この「HTTPエラー404.3-見つかりません」というエラーが表示されます。私が戻ってきました。
そのため、IIS7/Vista-64セットアップの何かが間違っています。何が欠けているのでしょうか?
スタート->実行cmd
をクリックし、次のように入力します。
cd "\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation"
ServiceModelReg.exe -i
この問題に初めて直面した場合。 Windows 8およびIIS 8.0の場合、必ずWindows Communication Foundation HTTP Windows機能をアクティブ化してください。
ただし、問題は、次に説明するASP.NetをIISに再登録することです。
また、64ビットマシンを使用している場合は、常にFramework64パスを使用します。C:\ Windows\Microsoft.NET\Framework64\v4.0.30319> aspnet_regiis.exe -iru
以下はマイクロソフトからの説明です:
http://download.Microsoft.com/download/0/A/E/0AEB3BC1-506E-4954-8AB1-4FA2EE75985C/ReleaseNotes.docx
HTTPトランスポートを介してメッセージを受信するサービスを実行しようとすると、次のようなエラーが表示される場合があります。
'/ WCFApplication'アプリケーションでのサーバーエラー
アセンブリ 'System.ServiceModel、Version = 3.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089'からタイプ 'System.ServiceModel.Activation.HttpModule'をロードできませんでした。
説明:現在のWeb要求の実行中に未処理の例外が発生しました。エラーの詳細と、コードのどこで発生したかについて、スタックトレースを確認します。例外の詳細:System.TypeLoadException:アセンブリ 'System.ServiceModel、Version = 3.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089'からタイプ 'System.ServiceModel.Activation.HttpModule'をロードできませんでした。
このエラーは、IISが.NET Framework 4のインストール後にインストールされた場合、または3.0バージョンのWCF Http Activationモジュールがインストール後にインストールされた場合に発生する可能性がありますIISおよび.NET Framework 4。
この問題を解決するには、ASP.NET IIS Registration Tool(Aspnet_regiis.exe、))を使用して、正しいバージョンのASP.NETを登録する必要があります。これは、-iruパラメータを使用して実行できます。 aspnet_regiis.exeを次のように実行すると:
aspnet_regiis.exe -iru
そして、それが原因であるクレジット: Source
Windows Server 2012の[役割サービスの追加]で[HTTPアクティベーション]を選択する必要がありました。
インターネット情報サービスを拡張してIIS=をインストールしてから、ASP.Net 3.5またはASP.Net 4.5およびISAPIを確認してください... 。詳細については画像をご覧ください
さまざまなフラグを使用してServiceModelRegおよびaspnet_regiis.exeを実行してHTTPアクティベーション機能を追加しようとしましたが、それでも機能しませんでした。最終的に機能したのは、次のハンドラーをweb.configファイルに手動で追加することでした。
<system.webServer>
<handlers>
<add name="svc-Integrated" path="*.svc" verb="GET,HEAD,POST,DEBUG" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" allowPathInfo="false" preCondition="integratedMode" responseBufferLimit="4194304" />
私のプロジェクトは.Net 3.5を実行しており、IISは7.5および7.0でした。