404 IIS 構成による BadRequest...
IIS でホスト ヘッダーを変更しようとした後、IIS から 404 BadRequest エラーを受け取った場合、これはよくあることですが、修正方法があります。
IIS 構成を変更して修正する
WCF は、サイトごとに指定された複数の IIS バインディングをどのようにサポートできますか?:
http://tinyurl.com/55q5hg
WCF コードを変更して修正する
または、次の記事では、ある開発者が構成とコードを組み合わせてこの問題をどのように解決したかを説明してい
ます。WCF、SSL、およびホスト ヘッダーの冒険
http://geekswithblogs.net/rakker/archive/2008/07/03/123562.aspx
この記事では、2 つの重要なリンクを参照しています...
最初のものは、IIS でホスト ヘッダーを適切に設定する方法を説明しています。
ホストヘッダーが機能するようになると、次のことがわかります...
「IIS に複数のホスト ヘッダーを使用することはできません。そうしないと、wcf が壊れます」
この制限を回避するための解決策は、この記事に記載されています。また、上記の GeeksWithBlogs.net の記事には、拡張されたバリエーションを提供するコメントもあります。
それでも問題が解決しない場合は、下のコメント欄でお知らせください...
サービスが機能していない場合...
WCF での私の経験では、特に構成に関して、非常に扱いにくい場合があります。ベスト プラクティスに従っており、非標準的なことをしていない場合、展開の問題の大部分は、設定ファイルの不具合が原因です。
理論的には (アーキテクチャの違いにより、実際にはそれほど多くはありません)、IIS で WCF サービスをセットアップすることは、一般的な仮想ディレクトリと、Web アプリケーションまたは ASMX Web サービス用の対応するアプリケーションをセットアップすることと何ら変わりはありません。
したがって、これがインターネットに公開する最初の WCF サービスである場合は、最初の Web サイトを公開するときと同じ簡単な方法に従うことをお勧めします。基本的に、新しいサンプル「WCF サービス アプリケーション」を作成します (これは、C# または VB の Web セクションの [新しいプロジェクトの追加] ダイアログで利用できます)。
動作するようになったら、展開の慣行に従って運用サンドボックスに移動し、ローカルでテストします。このサンドボックスには、一般的なネットワーク構成の問題に関する疑いをなくすために、いくつかの Web サイトまたは Web サービスが既にインストールされていて、インターネットからアクセスできることがわかっていることが望ましいです。そのサーバーからインターネット上で既に正常に公開されているサンプル ASMX Web サービスがある場合は、それが最適です。
次に、Web ブラウザーから ASMX および WCF サービスをテストしてみます。サーバー上でローカルに、他のデスクトップ上で内部的に、最後に外部的にテストします。
URL のテスト
利用可能で関連性のあるすべての種類の URL フレーバーで、Web ブラウザーから標準の SVC および ASMX ファイルへのアクセスをテストしたいと考えています。結果は同様で、サービスの概要ページがウィンドウに表示されます。違いは、web.config ファイルでその機能が無効になっていない場合、ASMX Web サービスの概要により、サービスで Web メソッドを実行できる可能性が高いことです。
次の URL スタイルのブラウザ フェッチの結果を比較してください...
- http:// localhost /WcfService1/Service1. サービス
- http:// localhost /WcfService1/Service1. asmx
- http:// MachineName または MachineFQN /WcfService1/Service1。サービス
- http:// MachineName または MachineFQN /WcfService1/Service1。asmx
- http:// MachineLocalIP#1 /WcfService1/Service1. サービス
- http:// MachineLocalIP#1 /WcfService1/Service1. asmx
- http:// MachineLocalIP#2 /WcfService1/Service1. サービス
- http:// MachineLocalIP#2 /WcfService1/Service1. asmx
- http:// ExternalIP /WcfService1/Service1. サービス
- http:// ExternalIP /WcfService1/Service1. asmx
これらのテストはすべて、同様の結果を返すはずです。
サービス メソッドのテスト
気が向いたら、Web ブラウザーから、テスト済みの URL のいずれかについて、ASMX Web サービスでいくつかの Web メソッドをテストしてみてください。ASMX Web サービスを別の方法でテストできることもすぐにわかります...
次に、Visual Studio 2008 ディストリビューション ( C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE ) にあるWcfTestClient.exeアプリケーションを使用して、WCF サービスと ASMX Web サービスの両方で Web メソッドをテストします。
[ファイル] - > [サービスの追加] メニュー項目からサービスを追加する必要があります。テストする各サービス URL に対して上記の URL を入力します。SVC および ASMX ファイルのファイル名を必ず含めてください。すべてが順調であれば、web.config ファイル内の要素の「httpGetEnabled」属性によって有効化された MEX エンドポイントは<serviceMetadata/>
、ユーティリティが動作するために必要なデータを返し、それによってツリーにサービス メソッドのインベントリを設定します。このような:

この時点から、次のリソースを参照すると便利です。
結論
ここまでできれば、他の問題は発生しないと思います。サンプルの設定を、インターネットに公開しようとしている WCF サービスと比較してみてください。違いが明らかになることを願っています。
web.config が正しく設定されていることがわかっていることを前提として、診断中は WCF サービスを ASMX Web サービスのように扱うことを忘れないでください。
それでも問題が解決しない場合は、次のガイドで技術的なアドバイスを確認してください。
最後に、他のすべてが失敗した場合は、WCF サービスを ASMX Web サービスでラップするだけです。