2016-05-16 25 views
0

もの:ホストWCF私がしなければならないとまだ行っ

  1. は、既存のMVC WebアプリケーションへのWCFサービスを追加します。いくつかのフォルダの下でex:/Service/Service1.svc

  2. IISにMVCサイトをホストし、完全に機能テストしているサイト。

    namespace WebApplication3.Service 
    { 
        public class Service1 : IService1 
        { 
         public string DoWork() 
         { 
          return "some string"; 
         } 
        } 
    } 
    
    
    namespace WebApplication3.Service 
    { 
        [ServiceContract] 
        public interface IService1 
        { 
         [OperationContract] 
         [WebInvoke(Method = "GET")] 
         string DoWork(); 
        } 
    } 
    

とWeb構成:

<system.serviceModel> 
<bindings> 
    <basicHttpBinding> 
    <binding name="transportsecurity"> 
     <security mode="Transport"> 
     <transport clientCredentialType="None"></transport> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 

<services> 
    <service name="WebApplication3.Service.Service1" behaviorConfiguration="mybehavior"> 
    <endpoint address="http://localhost/testsite/Service/Service1.svc" binding="basicHttpBinding" bindingConfiguration="transportsecurity" contract="WebApplication3.Service.IService1"> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/> 
    </service> 
</services> 

<behaviors> 
    <serviceBehaviors> 
    <behavior name="mybehavior"> 
     <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" 
    multipleSiteBindingsEnabled="true" /> 

私は上のサービスは、それが見つからないエラー404

感謝を示してIIS閲覧!

答えて

1

ほとんどの場合、エンドポイントアドレスは、ホスティング方法に基づいて正しくない/一致しない可能性があります。

エンドポイントアドレスを空の文字列に変更するだけです。

<services> 
    <service name="WebApplication3.Service.Service1" behaviorConfiguration="mybehavior"> 
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="transportsecurity" contract="WebApplication3.Service.IService1"> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/> 
    </service> 
</services> 

また、あなたは、HTTPS(トランスポート・セキュリティ)になるこの構成されたので、あなたは、HTTPSのURLを使用していることを確認しています。最初のテストでは、最初にセキュリティを削除し、基本的なバインディングで作業することをお勧めします。いったん動作したら、セキュリティでテストします。

関連する問題