基本的なHTTP認証を使用してSSLでのみ実行されるWindows 7 x64上のIIS 7.5にWCFサービスを展開しようとしているエラーを把握するために、見つけることができるあらゆる場所(ここStackoverflowを含む)でグーグル検索を行っています。自己署名証明書を使用して HTTPS のポート 50443 にバインドされている IIS のサイトがあります。(80 と 443 でリッスンしている Tomcat を既に実行しているサーバー上の IIS にこれを展開する予定であるため、標準ポート 443 は使用できません。)
これは web.config です。
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="SSLBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="HelloWorldWcf.HelloWorldWcfService">
<endpoint name="HelloWorldWcf.HelloWorldWcfService"
address="https://mylaptop:50443/HelloWorld/Service1.svc"
binding="basicHttpBinding"
bindingConfiguration="SSLBinding"
contract="HelloWorldWcf.IHelloWorldWcfService"/>
<endpoint address="https://mylaptop:50443/HelloWorld/Service1.svc/mex"
binding="mexHttpsBinding"
contract="IMetadataExchange"/>
</service>
</services>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
サービス エンドポイント アドレスを参照し、基本認証資格情報を手動で入力すると、ブラウザーに次の例外エラー メッセージが表示されます。
指定された URI スキーム「https」は無効です。「http」が必要です。
パラメータ名: context.ListenUriBaseAddress
これは、同様のサービスに対して WCF クライアントを実行しようとしたときに発生したエラーと同じですが、「パラメーター名: via」で終わる点が異なります (コール スタックに表示されるメソッドのパラメーター名が「System.ServiceModel. Channels.TransportChannelFactory`1.ValidateScheme(URI via)」、実際には「via」です)。
私はサーバーとクライアントの構成ファイルを何度も微調整しましたが、追跡できなくなりましたが、上記の web.config ファイルは、これまでのところ私の最善の推測です-そして、ブラウザーからも機能せず、WCF クライアントからも機能しません。 .
IIS 7.5 でホストされている WCF サービスに、非標準の SSL ポートで HTTPS 経由の基本的な HTTP 認証を使用してアクセスするには、どうすればよいですか? ヘルプ!(& ありがとう!)