2012-11-28 14 views
5

मैं सी # और .NET Framework 4.0 के साथ एक डब्ल्यूसीएफ सेवा विकसित कर रहा हूं।basicHttp बाइंडिंग और webHttp एक साथ बाध्यकारी

मैं webHttpBinding उपयोग कर रहा हूँ यह करने के लिए:

[OperationContract] 
[WebInvoke(Method = "POST", 
    ResponseFormat = WebMessageFormat.Json, 
    BodyStyle = WebMessageBodyStyle.Bare, 
    UriTemplate = "filteredOrders/")] 
OrderContract[] GetOrders(IdsMessage msg); 

[OperationContract] 
[WebInvoke(Method = "POST", 
    ResponseFormat = WebMessageFormat.Json, 
    BodyStyle = WebMessageBodyStyle.Bare, 
    UriTemplate = "completeFilteredOrders/")] 
OrderContract[] LoadCompleteFilteredOrders(IdsMessage msg); 

लेकिन अब मैं streamming का उपयोग कर कि वेब सेवा के लिए छवियों को भेजने की जरूरत है और मैं basicHttpBinding जोड़ने के लिए यह करने के लिए की जरूरत है।

मैं इस डब्ल्यूसीएफ वेब सेवा में का उपयोग करने वाला एक नया [OperationContract] कैसे कर सकता हूं?

क्षमा करें, मैं डब्ल्यूसीएफ विकास पर बहुत नया हूं।

वैसे, यह मेरा Web.config है:

<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 
    <system.serviceModel> 
    <services> 
     <service name="EReportService.RestServiceImpl" behaviorConfiguration="ServiceBehaviour"> 
     <endpoint address="" binding="webHttpBinding" contract="EReportService.IRestServiceImpl" behaviorConfiguration="web"> 
     </endpoint> 
     </service> 
    </services> 
    <bindings> 
     <webHttpBinding> 
     <binding maxReceivedMessageSize="2097152" maxBufferSize="2097152" transferMode="Streamed"/> 
     </webHttpBinding> 
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="ServiceBehaviour"> 
      <serviceMetadata httpGetEnabled="true"/>  
      <serviceDebug includeExceptionDetailInFaults="true"/> 
     </behavior> 
     </serviceBehaviors> 
     <endpointBehaviors> 
     <behavior name="web"> 
      <webHttp/> 
     </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 
    <connectionStrings> 

    </connectionStrings> 
</configuration> 
+1

सम्भावित समाधान: http://debugmode.net/2011/12/22/how-to-enable-rest-and-soap-both-on-the-same-wcf-service/ – VansFannel

उत्तर

8

बस एक अलग पते का उपयोग कर एक और अंत बिंदु बनाने (दो समाप्ति बिंदुओं एक ही पते साझा नहीं कर सकते) - आप मौजूदा OperationContract संशोधित कर सकते हैं गैर-भयानक तरीकों को बनाने के लिए।

<system.serviceModel> 
    <services> 
     <service name="EReportService.RestServiceImpl" behaviorConfiguration="ServiceBehaviour"> 
     <endpoint address="" binding="webHttpBinding" contract="EReportService.IRestServiceImpl" behaviorConfiguration="web"> 
     </endpoint> 
     <endpoint address="soap" binding="basicHttpBinding" contract="EReportService.IRestServiceImpl" > 
     </endpoint> 
     </service> 
    </services> 
</system.serviceModel> 
संबंधित मुद्दे

 संबंधित मुद्दे