私はGoogleとSOに関する他の投稿を試しましたが、これまで試したことは何も私の問題を解決していません。
これが答えになると思いました。サイコロはありません。私はまた、このように、私が受け取っているのと同じエラーメッセージに言及しているSOに関するほとんどの投稿を読みました。
私のサイトは安全です、https。このサイトで実行されている非同期ajaxのものを処理する3つのWCFサービスがあります。これらのサービスのいずれかにアクセスしようとすると、次のエラーが発生します。
WebHttpBindingをバインドしているエンドポイントのスキームhttpに一致するベースアドレスが見つかりませんでした。登録されているベースアドレススキームは[https]です。
私の設定:
<behaviors>
<endpointBehaviors>
<behavior name="ajaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="ajaxAsynchBehavior">
<serviceMetadata httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding name="webBinding">
<security mode="Transport" />
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="MyApp.Web.Services.CascadingList">
<endpoint address="" behaviorConfiguration="ajaxAsynchBehavior"
binding="webHttpBinding" bindingConfiguration="webBinding" contract="MyApp.Web.Services.CascadingList" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="https://[domain]/MyApp/Services/CascadingList.svc" />
</baseAddresses>
</host>
</service>
<service name="MyApp.Web.Services.AutoComplete">
<endpoint address="" behaviorConfiguration="ajaxAsynchBehavior"
binding="webHttpBinding" bindingConfiguration="webBinding" contract="MyApp.Web.Services.AutoComplete" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="https://[domain]/MyApp/Services/AutoComplete.svc" />
</baseAddresses>
</host>
</service>
<service name="MyApp.Web.Services.Validation">
<endpoint address="" behaviorConfiguration="ajaxAsynchBehavior"
binding="webHttpBinding" bindingConfiguration="webBinding" contract="MyApp.Web.Services.Validation" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="https://[domain]/MyApp/Services/Validation.svc" />
</baseAddresses>
</host>
</service>
</services>
「https:// [domain] /MyApp/SubmitNew.aspx」にアクセスでき、カスケードリストが機能するはずです。
現在、「親」リストには「[メソッド500]」が表示され、子リストは無効のままです。
「SubmitNew」ページにアクセスすると、サーバーのイベントログに「送信者情報:System.ServiceModel.Activation.HostedHttpRequestAsyncResult / 51442863例外:System.ServiceModel.ServiceActivationException:サービス「/MyApp/Services/CascadingList.svc」をアクティブ化できません」と表示されます。コンパイル中の例外が原因です。例外メッセージは次のとおりです。WebHttpBindingをバインドしているエンドポイントのスキームhttpに一致するベースアドレスが見つかりませんでした。登録されているベースアドレススキームは[https]です。 "
「 https:// [domain] /MyApp/Services/CascadingList.svc 」に直接移動すると、前述のエラーも発生します。
更新
これは本番サーバーで発生します。私が入社するずっと前に、SSL証明書付きの安全なサイトが開設されました。新しいWebアプリの安全なサイトの下に新しい仮想ディレクトリを追加しました。
IISの場合:
Secure Web Applications (has SSL cert)
MyApp
WebApp1
WebApp2
正しいbehaviorConfigurationを使用するように構成(上記)を修正しました。
--2012.04.24 13:15CDT-
構成を次のように変更すると(以下)、次のエラーが発生しました:「System.ServiceModel.ServiceActivationException:コンパイル中の例外のため、サービス'/MyApp/Services/CascadingList.svc'をアクティブ化できません。例外メッセージは次のとおりです。'ajaxAsynchBehavior' "という名前のエンドポイント動作はありません
<serviceBehaviors>
<behavior name="ajaxAsynchBehavior">
<serviceMetadata httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
<services>
<service name="MyApp.Web.Services.CascadingList">
<endpoint address="" behaviorConfiguration="ajaxAsynchBehavior"
binding="basicHttpBinding" bindingConfiguration="ajaxBinding" contract="MyApp.Web.Services.CascadingList" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="https://[domain]/MyApp/Services/CascadingList.svc" />
</baseAddresses>
</host>
</service>
.
.
.
</services>
だから私はそれを次のように戻しました:
<behaviors>
<endpointBehaviors>
<behavior name="ajaxBehavior">
<enableWebScript />
</behavior>
<behavior name="clientBehavior" />
</endpointBehaviors>
<serviceBehaviors>
<behavior name="ajaxAsynchBehavior">
<serviceMetadata httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="MyApp.Web.Services.CascadingList">
<endpoint address="" behaviorConfiguration="ajaxBehavior"
binding="basicHttpBinding" bindingConfiguration="ajaxBinding" contract="MyApp.Web.Services.CascadingList" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="https://[domain]/MyApp/Services/CascadingList.svc" />
</baseAddresses>
</host>
</service>
.
.
.
</services>