2014-11-07 3 views
0

Мой wcf dataservice использует self-host. Когда я попытался получить данные из wcf dataservice by simploe.odata.client, он выдает ошибку: Internal Server Error. wcf dataservice код: public class RFODataService : DataService<RFODBEntities> { public static void InitializeService(DataServiceConfiguration config) { config.SetEntitySetAccessRule(typeof(DETAIL).Name, EntitySetRights.All); config.SetEntitySetAccessRule(typeof(HEADER).Name, EntitySetRights.All); } }Simple.Odata.Client Извлечь данные из WCF Dataservice

код самообслуживания: `var currentAssembly = Assembly.GetAssembly (this.GetType()); если (текущийAssembly == null) возвращение «сборка не найден»; var types = currentAssembly.GetTypes(). Где (w => w.IsClass & & w.Namespace.Contains («DataServices»)). ToArray();

 for (int i = 0; i < types.Length; i++) 
     { 
      var svcHost = new DataServiceHost(serviceType, new Uri[] { new Uri(string.Format("http://localhost:{0}/", Port)) }); 
      svcHost.Open(); 
     }` 

simple.odata.client code: `var client = new ODataClient (" URL ");

 var detail = client.For("DETAIL").FindEntriesAsync(); 

     string temp = detail.Result.ToString(); 

     Console.Write(temp);` 

Меня беспокоит, есть ли кто-нибудь знать причину?

ответ

0

Поскольку вы получаете InternalServerError, это, скорее всего, что-то с реализацией или настройкой службы. Я предлагаю вам сначала изолировать ошибку, запустив запрос в браузере. Попробуйте что-то вроде SERVER_URL/Details (я предполагаю, что у вас есть набор объектов с именем Details) и проверьте ответ с сервера. Если это не работает, ваша проблема - это сервер. Если это работает, проверьте ваши запросы Simple.Data.Client, запустив Fiddler и проверив HTTP-трафик. Если сгенерированный запрос отличается (и не так), вы можете открыть проблему на сайте Simple.OData.Client GitHub, и я могу его исследовать.

+0

привет, спасибо за ваш ответ, как вы сказали, я обнаружил, что Simple.OData.Client в порядке, проблема в том, что строка подключения к DB неверна. Когда я запускаюсь в браузере, все в порядке, но когда я даю получить в EF из БД, это исключение. – sam

+0

Отлично! Приятно знать, что вы нашли ошибку. –

+0

привет, как выше проблема, когда я использовал simple.odata.clent в C#, он работает, но когда я использовал его для xamarin для android, он не работает. Шаг, как это делается до C#, когда он запускается до " string temp = detail.Result.ToString() ", это не ответ, знаете ли вы, что это резонанс? Это разные C# и android в xamarin? Спасибо за ваше чтение! – sam

Смежные вопросы