これについて多くの投稿があることを理解しており、検索で出てきたすべての投稿を調べて、言及されているすべてを実装しました. HTTP のローカル システムで動作する WCF Web サービスがあり、HTTP のサーバーで動作しました。ただし、クライアントでは、これが HTTPS 経由で機能する必要があります。このサイトや他のサイトへの無数の投稿は、これが本来あるべきほど単純ではないことを示しています。これまで、ASMX Web サービスは「機能した」だけであり、複雑な構成は必要ありませんでした。
現在の構成で次のエラーが発生します。
バインディング WSHttpBinding を持つエンドポイントのスキーム https に一致するベース アドレスが見つかりませんでした。登録されているベース アドレス スキームは [http] です。
これが役に立たないように構成するために何日も試みた後、現時点での私のコードは次のとおりです。
<system.serviceModel>
<!-- -->
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" >
<baseAddressPrefixFilters>
<add prefix="https://mysite.com"/>
<add prefix="http://mysite.com"/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
<!-- Set up Custom Behaviors -->
<behaviors>
<endpointBehaviors>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="WebPostService.WebPostServiceBehavior">
<serviceMetadata httpsGetEnabled="true" httpsGetUrl="WebPostServices.svc/mex" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<!-- Set up the binding configuration -->
<bindings>
<wsHttpBinding>
<binding name="SOAPBinding"
>
<security mode="Transport">
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service
behaviorConfiguration="WebPostService.WebPostServiceBehavior"
name="WebPostService.WebPostService"
>
<host>
<baseAddresses>
<add baseAddress="https://mysite.com/Services/WebPostService.svc"/>
</baseAddresses>
</host>
<endpoint address=""
binding="wsHttpBinding"
bindingConfiguration="SOAPBinding"
contract="WebPostService.IWebPostService"
>
<identity>
<dns value="mysite.com" />
</identity>
</endpoint>
<endpoint
address="mex"
binding="mexHttpsBinding"
contract="IMetadataExchange"
>
</endpoint>
</service>
</services>
</system.serviceModel>
私は何を間違っていますか? HTTPS でこれを機能させるにはどうすればよいですか? これが本来あるべきほど単純ではないことに不満を感じています。私はこのプロジェクトに取り組んでいる数か月間、MSDN の WCF ドキュメントに埋もれており、サービス、エンドポイント、およびバインディングを十分に把握しています。
更新: まだこれに取り組んでいますが、mex アドレスの完全な URL を入力しようとすると、奇妙なエラーが発生しました。私はこれに変更しました:
address="https://prcwebs.com/Services/WebPostService.svc/mex"
エラーが発生しました:
このサービスのセキュリティ設定には Windows 認証が必要ですが、このサービスをホストする IIS アプリケーションでは有効になっていません。
Windows 認証を使用しようとしていません。セキュリティ設定は変更されておらず、まだ設定されています
<セキュリティ モード="トランスポート" />
WebHttpBinding をバインドするエンドポイントのスキーム https に一致するベース アドレスが見つかりませんでした。登録されたベース アドレス スキームは [http] です - 役に立ちませんでした。何も言及されて いません 結合 WSHttpBinding を持つエンドポイントのスキーム http に一致するベース アドレスが見つかりませんでした - トランスポート セキュリティを使用していますが、これは適用されません。さまざまなセキュリティ モードに変更しようとしましたが、サイトを機能させることができませんでした。