web-dev-qa-db-ja.com

IIS HTTPS経由で404エラーが発生する7つのWCF Webサービス

IIS 7.5で実行されているWCF Webサービスがいくつかありますが、HTTPリクエストには正しく応答しますが、SSLを使用してメソッドを呼び出すと、404(Not Found)エラーで応答します。

サイトのバインドは次のとおりです。

IIS 7 Site Bindings

http://127.0.0.1:8088/Public/PublicDataService.svc を呼び出すと、予期した応答が得られます。

サービスを作成しました。

このサービスをテストするには、クライアントを作成し、それを使用してサービスを呼び出す必要があります。これは、コマンドラインからsvcutil.exeツールを使用して、次の構文で実行できます。

同様に、任意のサービスメソッドの呼び出しが機能し、CanConnectと呼ばれる最も基本的なメソッドがあり、単純に「true」を返します。

http://127.0.0.1:8088/Public/PublicDataService.svc/CanConnect

本当

Httpsを使用すると、次のようになります。

https://127.0.0.1/Public/PublicDataService.svc

サービスを作成しました。

このサービスをテストするには、クライアントを作成し、それを使用してサービスを呼び出す必要があります。これを行うには、コマンドラインからsvcutil.exeツールを使用し、次の構文を使用します。

https://127.0.0.1/Public/PublicDataService.svc/CanConnect

「/パブリック」アプリケーションでのサーバーエラー。

リソースが見つかりません。

説明:HTTP404。探しているリソース(またはその依存関係の1つ)が削除されたか、名前が変更されたか、一時的に利用できなくなっている可能性があります。次のURLを確認して、スペルが正しいことを確認してください。

リクエストされたURL:/Public/PublicDataService.svc/CanConnect

バージョン情報:Microsoft .NET Frameworkバージョン:4.0.30319; ASP.NETバージョン:4.6.1055.0

これは私を完全に困惑させました、どのようにして.svcを呼び出すことができますが、その内部メソッドは404を与えますか?問題をさらに混乱させるには、これが機能していました...実際、いつ停止したかさえわかりません。つまり、それがコードリリースやサーバーパッチなどに対応しているかどうかです。

したがって、ウェブサイトの実際の構成は次のとおりです。

Webservices (this is the root of the application / where the Web.Config sits)
- Public (a windows directory, no addition config)

ルートの直下で実行される他のサービスがいくつかあり、httpとhttpsの両方で正常に機能しています。

これを引き起こしている可能性のあるものに関するアイデア。

7
Morvael

これは単にweb.configファイルのエラーであることがわかりました。

SOに関するこれらの2つの答えが解決策でした:

https://stackoverflow.com/a/26581326/1286358

そしてその逆

https://stackoverflow.com/a/26539003/1286358

不思議なことに、それがhttpとhttpsの両方で1度だけ機能し、その後停止しただけだったのです。他の場所で構成変更があったに違いありません。

編集:完全性のための実際の修正

以下はweb.configにあり、「none」から「Transport」に変更されました

<system.serviceModel>
    <bindings>
        <webHttpBinding>
            <binding>
                <security mode="Transport" />
7
Morvael