2014-10-28 53 views
0

有與WCF REST服務的以下問題逗號分隔字符串值傳遞給一個WCF休息服務

我試圖從瀏覽器訪問這個端點,

https://localhost:443/Service1.svc/json/GetCustomerData/ABC US,ABC UK/MQA/ 

ABC美國ABC英國是逗號分隔字符串參數

麻煩的是,當我在我的本地嘗試這種方式時,它工作得很好,但是當我在遠程主機上嘗試此操作時,瀏覽器僅顯示無法顯示頁面。我不確定是否需要對iis進行一些設置。

我在iis上託管服務。

這是從遠程的響應的iis

失敗

https://remoteserver:443/Service1.svc/json/GetCustomerData/ABC US,ABC UK/MQA/ 

其被寫入到日誌中的錯誤是可以在一個對象圖被序列或反串行化的項目的最大數目是「65536 」。更改對象圖或增加MaxItemsInObjectGraph配額。

我認爲這也是誤導。另外我使用的是自簽名證書

通行證(因爲逗號分隔值被刪除,只是一個單一的參數傳遞)

https://remoteserver:443/Service1.svc/json/GetCustomerData/ABC UK/MQA/ 

以下是我的代碼

[OperationContract] 
    [WebInvoke(Method = "GET", UriTemplate = "GetCustomerData/{postcode}/{dept}", ResponseFormat = WebMessageFormat.Json)] 
    IEnumerable<Customer> GetCustomerData(string postcode, string dept); 

//interface implementation 
IEnumerable<Customer> GetCustomerData(string postcode, string dept); 
{ 
    return new Customer 
       { 
        Name = "Customer 1", 
        Add1 = "Address Line 1" 
        ...etc 
       }; 
} 

以下是config我正在使用

<system.serviceModel> 
    <services> 
     <service name="Service1" behaviorConfiguration="httpsBehavior"> 
      <endpoint address="json" binding="webHttpBinding" contract="ICustomerData" behaviorConfiguration="web" 
         bindingConfiguration="webHttpBindingTransportSecurity"/> 
      <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
      </service> 
    </services> 

    <bindings> 
     <webHttpBinding> 
     <binding name="webHttpBindingTransportSecurity" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"> 
      <security mode="Transport" /> 
     </binding> 
     </webHttpBinding> 
    </bindings> 

    <behaviors> 
     <serviceBehaviors> 
     <behavior name="httpsBehavior"> 
      <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true"/> 
     </behavior> 
     </serviceBehaviors> 

     <endpointBehaviors> 
     <behavior name="web"> 
      <webHttp/> 
      <dataContractSerializer maxItemsInObjectGraph="2147483647"/> 
     </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    </system.serviceModel> 

任何幫助將不勝感激

回答

0

這是endpointBehaviors搬到serviceBehaviors

我在配置行爲作出對它進行排序的變化,

<behaviors> 
    <serviceBehaviors> 
    <behavior name="httpsBehavior"> 
     <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true"/> 
     <dataContractSerializer maxItemsInObjectGraph="2147483647"/> 
    </behavior> 
    </serviceBehaviors> 

    <endpointBehaviors> 
    <behavior name="web"> 
     <webHttp/> 
    </behavior> 
    </endpointBehaviors> 
</behaviors> 

基本上

相關問題