C# 添加新实体期间调试WCF数据服务上的数据服务请求异常
这是我的服务代码:C# 添加新实体期间调试WCF数据服务上的数据服务请求异常,c#,wcf,wcf-data-services,silverlight-5.0,C#,Wcf,Wcf Data Services,Silverlight 5.0,这是我的服务代码: using System; using System.Collections.Generic; using System.Data.Services; using System.Data.Services.Common; using System.Linq; using System.Linq.Expressions; using System.ServiceModel; using System.ServiceModel.Description; using System.
using System;
using System.Collections.Generic;
using System.Data.Services;
using System.Data.Services.Common;
using System.Linq;
using System.Linq.Expressions;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.ServiceModel.Web;
using System.Web;
namespace RadAppSilver.Web
{
public class DsWFS006 : DataService<WFS006Entities>
{
public DsWFS006()
{
ServiceHost host = new ServiceHost(typeof(DsWFS006));
ServiceDebugBehavior debug = host.Description.Behaviors.Find<ServiceDebugBehavior>();
// if not found - add behavior with setting turned on
if (debug == null)
{
host.Description.Behaviors.Add(
new ServiceDebugBehavior() { IncludeExceptionDetailInFaults = true });
}
else
{
// make sure setting is turned ON
if (!debug.IncludeExceptionDetailInFaults)
{
debug.IncludeExceptionDetailInFaults = true;
}
}
host.Open();
// This method is called only once to initialize service-wide policies.
}
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
//config.SetEntitySetPageSize("DocDetail", 30);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
}
}
}
此代码包括在我的客户端上初始化服务:
private void SetContext()
{
service = new DSEntity();
DataServiceQuery<DS1.Accounts> queryAcc = (DataServiceQuery<DS1.Accounts>)
(service.Accounts.Select(m =>
new DS1.Accounts
{
AccNo = m.AccNo,
AccDesc = m.AccDesc
}));
queryAcc.BeginExecute(t =>
{
DataServiceQuery<DS1.Accounts> state = t.AsyncState as DataServiceQuery<DS1.Accounts>;
var executedState = state.EndExecute(t);
ObservableCollection<DS1.Accounts> data = new ObservableCollection<DS1.Accounts>();
foreach (var entity in executedState)
data.Add(entity);
AccCache = data.ToList();
}, queryAcc);
var view = new VirtualQueryableCollectionView() { LoadSize = 300, VirtualItemCount = 10000 };
view.ItemsLoading += (y, e) =>
{
DataServiceQuery<DS1.DocDetail> query = (DataServiceQuery<DS1.DocDetail>)
service.DocDetail.OrderBy(it => it.Item)
.Where<DS1.DocDetail>(it => it.DocSerNo == 91120001)
.Where(view.FilterDescriptors)
.Sort(view.SortDescriptors)
.Skip(e.StartIndex)
.Take(e.ItemCount);
query = query.IncludeTotalCount();
query.BeginExecute(
s =>
{
DataServiceQuery<DS1.DocDetail> state = s.AsyncState as DataServiceQuery<DS1.DocDetail>;
var executedState = state.EndExecute(s);
var response = executedState as QueryOperationResponse<DS1.DocDetail>;
int count = (int)response.TotalCount;
ObservableCollection<DS1.DocDetail> data = new ObservableCollection<DS1.DocDetail>();
foreach (var entity in executedState)
data.Add(entity);
var dataSource = data.ToList();
view.VirtualItemCount = count;
view.Load(e.StartIndex, dataSource);
}, query);
};
grid1.ItemsSource = view;
}
private void SetContext()
{
服务=新的DSEntity();
DataServiceQuery queryAcc=(DataServiceQuery)
(service.Accounts.Select(m=>
新DS1.帐户
{
AccNo=m.AccNo,
AccDesc=m.AccDesc
}));
queryAcc.BeginExecute(t=>
{
DataServiceQuery状态=t.AsyncState作为DataServiceQuery;
var executestate=state.EndExecute(t);
ObservableCollection数据=新的ObservableCollection();
foreach(处于executedState的var实体)
数据。添加(实体);
AccCache=data.ToList();
},queryAcc);
var view=new VirtualQueryableCollectionView(){LoadSize=300,VirtualItemCount=10000};
view.ItemsLoading+=(y,e)=>
{
DataServiceQuery=(DataServiceQuery)
service.DocDetail.OrderBy(it=>it.Item)
.Where(it=>it.DocSerNo==91120001)
.Where(视图过滤器描述器)
.Sort(view.SortDescriptors)
.跳过(如开始索引)
.采取(如项目计数);
query=query.IncludeTotalCount();
query.BeginExecute(
s=>
{
DataServiceQuery状态=s.AsyncState作为DataServiceQuery;
var executestate=state.EndExecute;
var response=执行状态为QueryOperationResponse;
int count=(int)response.TotalCount;
ObservableCollection数据=新的ObservableCollection();
foreach(处于executedState的var实体)
数据。添加(实体);
var dataSource=data.ToList();
view.VirtualItemCount=计数;
view.Load(例如StartIndex、数据源);
},查询);
};
grid1.ItemsSource=视图;
}
添加新对象时它不起作用,添加host.open()时,exception不会给我任何详细信息;在构造函数上显示异常详细信息,服务已停止。包括调试wcf服务的所有选项 1.将以下属性应用于您的服务类 [System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults=true)]
设置这两种方法的断点,然后查看哪种类型的异常。您是否尝试过使用?否您能否完整地回答问题?
private void SetContext()
{
service = new DSEntity();
DataServiceQuery<DS1.Accounts> queryAcc = (DataServiceQuery<DS1.Accounts>)
(service.Accounts.Select(m =>
new DS1.Accounts
{
AccNo = m.AccNo,
AccDesc = m.AccDesc
}));
queryAcc.BeginExecute(t =>
{
DataServiceQuery<DS1.Accounts> state = t.AsyncState as DataServiceQuery<DS1.Accounts>;
var executedState = state.EndExecute(t);
ObservableCollection<DS1.Accounts> data = new ObservableCollection<DS1.Accounts>();
foreach (var entity in executedState)
data.Add(entity);
AccCache = data.ToList();
}, queryAcc);
var view = new VirtualQueryableCollectionView() { LoadSize = 300, VirtualItemCount = 10000 };
view.ItemsLoading += (y, e) =>
{
DataServiceQuery<DS1.DocDetail> query = (DataServiceQuery<DS1.DocDetail>)
service.DocDetail.OrderBy(it => it.Item)
.Where<DS1.DocDetail>(it => it.DocSerNo == 91120001)
.Where(view.FilterDescriptors)
.Sort(view.SortDescriptors)
.Skip(e.StartIndex)
.Take(e.ItemCount);
query = query.IncludeTotalCount();
query.BeginExecute(
s =>
{
DataServiceQuery<DS1.DocDetail> state = s.AsyncState as DataServiceQuery<DS1.DocDetail>;
var executedState = state.EndExecute(s);
var response = executedState as QueryOperationResponse<DS1.DocDetail>;
int count = (int)response.TotalCount;
ObservableCollection<DS1.DocDetail> data = new ObservableCollection<DS1.DocDetail>();
foreach (var entity in executedState)
data.Add(entity);
var dataSource = data.ToList();
view.VirtualItemCount = count;
view.Load(e.StartIndex, dataSource);
}, query);
};
grid1.ItemsSource = view;
}