3

証明書を使用して構成されたhttpsポートを備えたASP.NET MVC 2アプリケーションとともに実行されるWCFサービスに取り組んでいますwebMatrix-ssl。サービスはブラウザで完全に実行されており、wsdl もダウンロードできます。しかし、サービスをwcftestclientツールと自分のクライアントにロードしようとすると、以下のエラーが発生します。

Error: Cannot obtain Metadata from 'localhost:44300/MyService' If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address.  For help enabling metadata publishing, please refer to the MSDN documentation at go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange Error    URI: localhost:44300/MyService    Metadata contains a reference that cannot be resolved: 'localhost:44300/MyService'.    The remote server returned an unexpected response: (302) Found.    Too many automatic redirections were attempted.HTTP GET Error    URI: localhost:44300/MyService    There was an error downloading 'localhost:44300/MyService'.    The request failed with the error message:--"

wcf サービス ルーティングの属性を追加しましたがaspNetCompatibilityEnabled="true"、その属性が削除されていれば、すべて正常に動作します。最初、このサービスはbasicHttpBinding& で構成されており、これと同じ問題がありました。この記事wshttpBindingを読んだ後、バインドも問題である可能性が疑われるため、変更しましたが、まだ同じ問題が発生しています。以下は私のweb.config.

どなたか、これを修理するのを手伝っていただけませんか?

<system.serviceModel>    
    <extensions>
      <behaviorExtensions>
        <add name="ExceptionBehavior" type="ServiceExceptionHander.ExceptionHandlerBehaviorExtension, ServiceExceptionHandler" />
      </behaviorExtensions>
    </extensions>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <serviceMetadata httpsGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true" />
          <ExceptionBehavior />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service name="ServiceImplementation.MyService" behaviorConfiguration="ServiceBehavior">
        <endpoint binding="wsHttpBinding" bindingConfiguration="securityBinding" contract="ServiceContracts.IMyServiceContracts"/>    
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>    
      </service>
    </services>
    <bindings>
      <wsHttpBinding>
        <binding name="securityBinding">
          <security mode="Transport">
            <transport clientCredentialType="None"/>
          </security>          
        </binding>
      </wsHttpBinding>   
    </bindings>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true">
      <serviceActivations>
        <add factory="System.ServiceModel.Activation.ServiceHostFactory" service="ServiceImplementation.MyService" relativeAddress="MyService.svc"/>
      </serviceActivations>
    </serviceHostingEnvironment>    
</system.serviceModel>
4

0 に答える 0