今天在第一次測試時,碰到這樣的訊息
問題
The server encountered an error processing the request. See server logs for more details.
測試的過程是這樣的
- 建立一個 Web application
- 建立一個 Linq to sql dbml file,上頭拖了一個 Company 的 table
- 建立一個 ADO.NET Data Service,並修改名稱為 Service.svc
- 修改 Service.svc.cs 如下
public class Service : DataService
{
public static void InitializeService(IDataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
}
}
解決
頁面上什麼也沒有,只有這一行字。Google了一下。原來加上一行 attribute 即可
[ServiceBehavior(IncludeExceptionDetailInFaults=true)]
public class Service : DataService
{
public static void InitializeService(IDataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
}
}

意思是 Company 沒有key
所以在dbml 上加上 partial class, code 如下
[DataServiceKey("OID")]
partial class Company
{
}
如此一來就解決了問題。