WCF Исключительная обработка - PullRequest
0 голосов
/ 17 ноября 2011

У меня есть пять отдельных сервисов, каждый из которых соответствует своей таблице базы данных, такой как «Продукт», «Пользователь», «Заказы» и т. Д.

Я пытаюсь отправить свои пользовательские исключения через WCF.Я просмотрел Интернет и обернул свои пользовательские исключения в исключение ошибки:

interface
[FaultContract(typeof(NoSuchInstanceException))] 

cs
throw new FaultException<NoSuchInstanceException>(e, new FaultReason(e.Message), newFaultCode("UserFault"));

Проблема заключается в том, что при обновлении службы клиентский прокси исчезает.Я просмотрел интернет и нашел следующее решение, которое говорит о добавлении сопоставления в файл SVCMAP со ссылкой на сервис.http://travisspencer.com/blog/2007/11/

<NamespaceMapping
    TargetNamespace="http://schemas.datacontract.org/2004/07/MyCompany.MyProject.Exceptions" ClrNamespace="MyCompany.MyProject.Exceptions" />
</NamespaceMappings>

Моя проблема заключается в том, что каждому сервису нужны пользовательские исключения, добавляемые в отображение, но когда я это делаю.Появляется ошибка, говорящая, что исключение уже определено в одной из других служб.Объединить ли я сервисы в один сервис?Любая помощь очень ценится.Спасибо

1 Ответ

0 голосов
/ 17 ноября 2011

Я могу придумать два варианта:

  • Объедините службы в одну - наличие нескольких служб, совместно использующих одни и те же типы данных, создает эту проблему на клиенте.
  • Перемещение общих типов данных в отдельную dll (проект библиотеки классов). Затем обратитесь к этой общей библиотеке типов данных как с вашего сервера, так и с клиента. При создании справочника услуг выберите вариант повторного использования типов данных.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...