我想從WCF服務獲取數據並將其顯示在網站中。
通信看起來是這樣的:
網站 - > WCF服務 - > CRM服務器 - > WCF服務 - >網站現在WCF:從多行返回單行
我的問題是,有時還會有更大的數據得到的,5K左右的行。 (和我的主機電腦用完拉姆) 我想流1-10行到網站,然後下一步等。
我的ServiceContract看起來是這樣的:
public interface ICommunicationService
{
[OperationContract]
IEnumerable<Row> GetCrmData(string view);
}
,我的實:
public IEnumerable<Row> GetCrmData(string view)
{
var data = new DataFromCrm(view);
return data.GetRows(MetaInformation);
}
GetRows方法看起來就像這樣:http://msdn.microsoft.com/en-us/library/gg327917.aspx 除了在foreach我填充Row類和產量返回結果。 (傳呼和烹飪禁用atm)。
foreach (var c in returnCollection.Entities)
{
var row = new Row();
row.RecordId = c.Attributes[ID].ToString();
foreach (var info in metaInfo)
{
row.Cells.Add(c.Attributes[info.AttributeName]);
}
yield return row;
}
是否使用了產量的回報嗎?
綁定
WCF服務:
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="ServiceBehavior"
name="ComToCrmService.CommunicationService">
<endpoint binding="basicHttpBinding"
bindingNamespace="http://localhost:9006/CommunicationService.svc"
contract="ComToCrmContracts.ICommunicationService" />
</service>
</services>
WCF客戶
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ICommunicationService"
closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536"
maxReceivedMessageSize="4294967294"
messageEncoding="Text"
textEncoding="utf-8"
transferMode="Streamed"
useDefaultWebProxy="true">
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_ICommunicationService"
contract="ComToCrmReference.ICommunicationService"
name="BasicHttpBinding_ICommunicationService"
address="http://dev11.meta10.com:9007/WCFTestService/CommunicationService.svc" />
</client>
</system.serviceModel>
2.是綁定是否正確?
3.我的思維有沒有失敗? 記得我試圖讓5000行中的1-10行顯示在網站上,獲取下一個1-10行等等。
只有數據沒有二進制數據或類似的東西。
4.它甚至可能只有一個請求?
如果我是正確的,你的建議只加載10行(如果我只顯示10行),然後加載網站時加載更多頁面? – domiSchenk
最簡單的形式是,儘管你可以很聰明地加載前5個頁面,或者根據應用程序的使用模式量身定製一些其他緩存算法。 – Lawrence