Wcf数据服务服务运营

时间:2011-08-02 20:46:32

标签: wcf wcf-data-services

使用错误消息后面的代码运行wcf数据服务时出错:

"The server encountered an error processing the request. See server logs for more details."

代码:

public class WcfDataService1 : DataService<Entities1>
    {
        // This method is called only once to initialize service-wide policies.
        public static void InitializeService(DataServiceConfiguration config)
        {
            // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
            // Examples:
            config.SetEntitySetAccessRule("*", EntitySetRights.All);
            config.SetServiceOperationAccessRule("GetData", ServiceOperationRights.All);
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
        }

        [WebGet()]
        public IQueryable GetData(int Id)
        {

            if (assayId > 0)
            {
                var query = from a in this.CurrentDataSource.Entity
                            where a.ID == Id
                            select a;

                return query;
            }
            else
                throw new DataServiceException(400, "ID is not valid");

        }


    }

当我不从操作中返回任何内容时,相同的代码有效。

更新:服务器日志说:

"WebHost failed to process a request.
 Sender Information: System.ServiceModel.Activation.HostedHttpRequestAsyncResult/44530215
 Exception: System.ServiceModel.ServiceActivationException: The service '/MyWcfDataService.svc' cannot be activated due to an exception during compilation.  The exception message is: The type 'MyWcfDataService', provided as the Service attribute value in the ServiceHost directive, or provided in the configuration element system.serviceModel/serviceHostingEnvironment/serviceActivations could not be found.. ---> System.InvalidOperationException: The type 'MyWcfDataService', provided as the Service attribute value in the ServiceHost directive, or provided in the configuration element system.serviceModel/serviceHostingEnvironment/serviceActivations could not be found.
   at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses)
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath)
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)
   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
   --- End of inner exception stack trace ---
   at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result)
 Process Name: WebDev.WebServer40
 Process ID: 1124

For more information, see Help and Support Center at 

任何人都可以帮我解决这个问题。

另外,如果我想暴露我自己的实体而不是EF创建的实体,那么如何去做...任何想法?

1 个答案:

答案 0 :(得分:0)

刚刚将返回类型修改为

IQueryable<Entity>它有效。