3

質問に名前を付けるのはよくわかりませんでしたが、問題は次のとおりです。

外部ソースによって使用されるIIS6にWCFサービスを展開しています。それがオンになっているボックスは外部でホストされていますが、DCを持っているので、事実上私のネットワーク(' mydomain ')にあり、内部的には' prod 'と呼ばれます。サービスはSSLを介して実行する必要があるため、サービスが応答するドメインのSSL証明書を取得しました。service.oursite.comは次のように言います。

DNSはすべてフィルタリングされており、 https: //service.oursite.com/service.svcでサービスにアクセス すると、小さなsvcutilリンクが開始されます。問題は、リンクが指すアドレスが https://service.oursite.com/service.svc?wsdlではないことです。

代わりに

https://prod.mydomain.com/service.svc?wsdl ですから、もちろん、証明書はそのためのものではないため、SSLはベイルします。また、wsdlをクリックすると、すべてのschemaLocationリンクが間違っており、ここでも内部ではなく内部を指しています。外部名

質問は: なぜそれがそれをしているのですか?どうすればそれをやめることができますか?

設定に何かを追加することの問題ですか?(良いと言って :))

これまでで最も感謝して受けた助け

ここで役立つ場合は、構成です

<services>
  <service name="CBBookingService.CBBookingService" behaviorConfiguration="CBBookingService.CBBookingServiceBehavior">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="TransportSecurity" contract="CBBookingService.ICBBookingService" />
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
  </service>
</services>
<bindings>
  <basicHttpBinding>
    <binding name="BasicSecurity" maxReceivedMessageSize="2147483647">
      <security mode="None" />
    </binding>
    <binding name="TransportSecurity" maxReceivedMessageSize="2147483647">
      <!--https-->
      <security mode="Transport">
        <transport clientCredentialType="None" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior name="CBBookingService.CBBookingServiceBehavior">
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false"/>
      <dataContractSerializer maxItemsInObjectGraph="2147483647" />
    </behavior>
  </serviceBehaviors>
</behaviors>
4

3 に答える 3

10

サービスの動作を使用でき、<useRequestHeadersForMetadataAddress>必要な動作を取得する必要があります。

<behaviors>
  <serviceBehaviors>
    <behavior name="CBBookingService.CBBookingServiceBehavior">
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false"/>
      <dataContractSerializer maxItemsInObjectGraph="2147483647" />
      <useRequestHeadersForMetadataAddress />
    </behavior>
  </serviceBehaviors>
</behaviors>
于 2013-01-29T21:36:53.477 に答える
1

答えてくれてありがとう残念ながら私は.net3.5を使用しているので、以下の答えは機能しません私はこれをやることになりました

 <system.serviceModel>
    <services>
      <service name="CBBookingService.CBBookingService" behaviorConfiguration="CBBookingService.CBBookingServiceBehavior">
        <endpoint address="https://service.oursite.com/CBBookingService.svc" binding="basicHttpBinding" bindingConfiguration="TransportSecurity" contract="CBBookingService.ICBBookingService" name="SSL" />
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicSecurity" maxReceivedMessageSize="2147483647">
          <security mode="None" />
        </binding>
        <binding name="TransportSecurity" maxReceivedMessageSize="2147483647">
          <!--https-->
          <security mode="Transport">
            <transport clientCredentialType="None" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="CBBookingService.CBBookingServiceBehavior">
          <serviceMetadata httpsGetEnabled="true" httpsGetUrl="https://service.oursite.com/CBBookingService.svc/SSL" /> 
          <serviceDebug includeExceptionDetailInFaults="false"/>
          <dataContractSerializer maxItemsInObjectGraph="2147483647" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true">
    </serviceHostingEnvironment>
  </system.serviceModel>
于 2013-01-30T10:37:05.653 に答える