Исключение ArgumentException не было обработано пользовательским кодом (Entity Framework)

#c# #wpf #visual-studio #web-services #entity-framework

#c# #wpf #visual-studio #веб-сервисы #entity-framework

Вопрос:

Я разрабатываю приложение MVC с использованием Visual Studio 2010.

Я создал 3 проекта: 1- библиотека dll, 2- веб-сервис, 3- приложение WPF

Внутри dll у меня есть Entity Framework 4, который будет использоваться веб-сервисом для получения данных и отправки их в приложение WPF.

Моя проблема в том, что: я получаю ошибку «Исключение ArgumentException не было обработано пользовательским кодом» при попытке вызвать функцию, которая создает экземпляр модели данных объекта из веб-сервиса.

Я создал консольный проект (для целей тестирования) в том же решении и добавил ссылку на библиотеку dll и скопировал App.Config в этот проект, и он заработал. Но когда я делаю то же самое с веб-сервисом, я всегда получаю одну и ту же ошибку.

Помогите, пожалуйста

Комментарии:

1. Вы указываете общее сообщение об ошибке, которое не является информативным. Можете ли вы сообщить нам текст сообщения об ошибке, который следует после текста исключения аргумента? Возможно, простое переименование App.config в Web.config решит проблему.

2. Это ошибка, которую я получаю: i.imgur.com/EZjHZ.png

3. Загляните внутрь исключения (смотрите подробно) и проверьте имя исходного файла и номер строки, это должно показать вам, где было вызвано исключение. Один из аргументов некоторого базового кода неверен. И добавьте эту ссылку к вопросу, а не только в качестве комментария!

4. Это указывает мне на это: используя (var context = new EntityDataModelContainer()) { … } в проекте библиотеки dll. Чего я не могу понять: я сделал то же самое с консольным приложением, и это сработало, почему это не работает в веб-сервисе?

5. вам необходимо предоставить больше информации, например, код, значения параметров во время этого сбоящего кода и т.д… Мы не можем догадаться, что там происходит

Ответ №1:

Да, нашел это.

Веб-сервис считывает Web.config файл, поэтому бесполезно копировать App.config в такого рода проекты, как (ASP.NET веб-сайты или веб-сервисы) это будет работать только для настольных приложений (консоль, WinForms, WPF, …).

Решение :

Скопируйте содержимое App.config из .dll и вставьте его в файл Web.config, вот так :

 <?xml version="1.0"?>
<configuration>
  <connectionStrings>
    <add name="EntityDataModelContainer" ... />
  </connectionStrings>
</configuration>