У меня есть следующий код в службе WCF, чтобы вызвать пользовательскую ошибку, основанную на определенных ситуациях. Я получаю исключение «Создатель этой ошибки не определял причину». Что я делаю неправильно?
//source code
if(!DidItPass)
{
InvalidRoutingCodeFault fault = new InvalidRoutingCodeFault("Invalid Routing Code - No Approval Started");
throw new FaultException<InvalidRoutingCodeFault>(fault);
}
//operation contract
[OperationContract]
[FaultContract(typeof(InvalidRoutingCodeFault))]
bool MyMethod();
//data contract
[DataContract(Namespace="http://myuri.org/Simple")]
public class InvalidRoutingCodeFault
{
private string m_ErrorMessage = string.Empty;
public InvalidRoutingCodeFault(string message)
{
this.m_ErrorMessage = message;
}
[DataMember]
public string ErrorMessage
{
get { return this.m_ErrorMessage; }
set { this.m_ErrorMessage = value; }
}
}
Ответ 1
После некоторых дополнительных исследований работал следующий модифицированный код:
if(!DidItPass)
{
InvalidRoutingCodeFault fault = new InvalidRoutingCodeFault("Invalid Routing Code - No Approval Started");
throw new FaultException<InvalidRoutingCodeFault>(fault, new FaultReason("Invalid Routing Code - No Approval Started"));
}
Ответ 2
Короткий ответ: вы ничего не делаете неправильно, просто неправильно читаете результаты.
На стороне клиента, когда вы поймаете ошибку, то, что поймано, имеет тип System.ServiceModel.FaultException<InvalidRoutingCodeFault>.
Ваш объект InvalidRoutingCodeFault фактически находится в свойстве .detail исключения FaultException. SO….
//код клиента
private static void InvokeMyMethod()
{
ServiceClient service = new MyService.ServiceClient();
try
{
service.MyMethod();
}
catch (System.ServiceModel.FaultException<InvalidRoutingCodeFault> ex)
{
// This will output the "Message" property of the System.ServiceModel.FaultException
// 'The creator of this fault did not specify a Reason' if not specified when thrown
Console.WriteLine("faultException Message: " + ex.Message);
// This will output the ErrorMessage property of your InvalidRoutingCodeFault type
Console.WriteLine("InvalidRoutingCodeFault Message: " + ex.Detail.ErrorMessage);
}
}
Свойство Message для FaultException — это то, что отображается на странице ошибки, поэтому, если оно не заполнено, как в столбце Джона Эгертона, вы увидите сообщение «Создатель этой ошибки не указал сообщение» Причина «. Чтобы легко заполнить его, используйте два конструктора параметров при вызове ошибки в службе следующим образом, передав сообщение об ошибке из вашего типа ошибки:
InvalidRoutingCodeFault fault = new InvalidRoutingCodeFault("Invalid Routing Code - No Approval Started");
throw new FaultException<InvalidRoutingCodeFault>(fault, new FaultReason(fault.ErrorMessage));
Ответ 3
serviceDebug includeExceptionDetailInFaults="true"
НЕ является решением
Следующий код работает даже с serviceDebug includeExceptionDetailInFaults="false"
// data contract
[DataContract]
public class FormatFault
{
private string additionalDetails;
[DataMember]
public string AdditionalDetails
{
get { return additionalDetails; }
set { additionalDetails = value; }
}
}
// interface method declaration
[OperationContract]
[FaultContract(typeof(FormatFault))]
void DoWork2();
// service method implementation
public void DoWork2()
{
try
{
int i = int.Parse("Abcd");
}
catch (FormatException ex)
{
FormatFault fault = new FormatFault();
fault.AdditionalDetails = ex.Message;
throw new FaultException<FormatFault>(fault);
}
}
// client calling code
private static void InvokeWCF2()
{
ServiceClient service = new ServiceClient();
try
{
service.DoWork2();
}
catch (FaultException<FormatFault> e)
{
// This is a strongly typed try catch instead of the weakly typed where we need to do -- if (e.Code.Name == "Format_Error")
Console.WriteLine("Handling format exception: " + e.Detail.AdditionalDetails);
}
}
Нет необходимости добавлять причину ошибки, если она не требуется. Просто убедитесь, что атрибут FaultContract верен.
Ответ 4
Я решил эту проблему, используя два конструктора параметров.
// service method implementation
throw new FaultException<FormatFault>(fault,new FaultReason(fault.CustomFaultMassage));
CustomFaultMassage является свойством из контракта данных.
Ответ 5
Можно также встретить это исключение, если не указать атрибут FaultContract (typeof (className)) для метода
Ответ 6
У меня есть код, точно такой же, как у Rashmi, и я получил ошибку «Создатель этой ошибки….». Это происходило, когда я отлаживался в VS2010. Я нашел этот пост:
который объяснил пару параметров отладки, которые мне нужно было отключить. Проблема решена.
Ответ 7
Если вы не хотите получать уведомления об этих исключениях, перейдите в «Отладка» → «Исключения» и снимите флажок «Пользовательский необработанный» для «Исключения на время обычного языка» или для определенных исключений.
Ответ 8
Вы можете попробовать это в настройках сервера (поведение → serviceBehaviors → ):
<serviceDebug includeExceptionDetailInFaults="true" />
Ответ 9
Используя сильно типизированный try catch, я смог обойтись с ошибкой «Создатель этой ошибки не определил причину».
Ответ 10
Обновление справочной службы в клиенте решило проблему. То же самое может сработать для вас.
The short answer is you are doing nothing wrong, just reading the results incorrectly.
On the client side when you catch the error, what is caught is of the type System.ServiceModel.FaultException<InvalidRoutingCodeFault>.
Your InvalidRoutingCodeFault object is actually in the .detail property of the FaultException. SO….
// client code
private static void InvokeMyMethod()
{
ServiceClient service = new MyService.ServiceClient();
try
{
service.MyMethod();
}
catch (System.ServiceModel.FaultException<InvalidRoutingCodeFault> ex)
{
// This will output the "Message" property of the System.ServiceModel.FaultException
// 'The creator of this fault did not specify a Reason' if not specified when thrown
Console.WriteLine("faultException Message: " + ex.Message);
// This will output the ErrorMessage property of your InvalidRoutingCodeFault type
Console.WriteLine("InvalidRoutingCodeFault Message: " + ex.Detail.ErrorMessage);
}
}
The Message property of the FaultException is what is displayed on the error page so if it’s not populated like in John Egerton’s post, you will see the ‘The creator of this fault did not specify a Reason’ message. To easily populate it, use the two parameter constructor when throwing the fault in the service as follows, passing your error message from your fault type:
InvalidRoutingCodeFault fault = new InvalidRoutingCodeFault("Invalid Routing Code - No Approval Started");
throw new FaultException<InvalidRoutingCodeFault>(fault, new FaultReason(fault.ErrorMessage));
The short answer is you are doing nothing wrong, just reading the results incorrectly.
On the client side when you catch the error, what is caught is of the type System.ServiceModel.FaultException<InvalidRoutingCodeFault>.
Your InvalidRoutingCodeFault object is actually in the .detail property of the FaultException. SO….
// client code
private static void InvokeMyMethod()
{
ServiceClient service = new MyService.ServiceClient();
try
{
service.MyMethod();
}
catch (System.ServiceModel.FaultException<InvalidRoutingCodeFault> ex)
{
// This will output the "Message" property of the System.ServiceModel.FaultException
// 'The creator of this fault did not specify a Reason' if not specified when thrown
Console.WriteLine("faultException Message: " + ex.Message);
// This will output the ErrorMessage property of your InvalidRoutingCodeFault type
Console.WriteLine("InvalidRoutingCodeFault Message: " + ex.Detail.ErrorMessage);
}
}
The Message property of the FaultException is what is displayed on the error page so if it’s not populated like in John Egerton’s post, you will see the ‘The creator of this fault did not specify a Reason’ message. To easily populate it, use the two parameter constructor when throwing the fault in the service as follows, passing your error message from your fault type:
InvalidRoutingCodeFault fault = new InvalidRoutingCodeFault("Invalid Routing Code - No Approval Started");
throw new FaultException<InvalidRoutingCodeFault>(fault, new FaultReason(fault.ErrorMessage));
- Remove From My Forums
-
Вопрос
-
Создаю web монитор, сохраняю, захожу в настройки, настраиваю время ответа.
Нажимаю сохранить и получаю вот такую хрень
Дата: 06/11/09 16:33:12
Приложение: System Center Operations Manager 2007 R2
Версия приложения: 6.1.7221.0
Серьезность: Ошибка
Сообщение: Ошибка при применении изменений.: Ошибка базы данных. [MPInfra_p_ManagementPackInstall] не выполнен, исключение:
Ошибка базы данных. [MPInfra_p_ManagementPackInstall] не выполнен, исключение:
Ошибка преобразования datetime из символьной строки.Кто знает как это лечить?
MCSE:S, MCSE:M, MCITP, MCTS, CCNA
Expert of: Exchange, OCS, System Center, Virtualisation.
Ответы
-
Решение заключается в двух шагах:
1) Ошибка в логе, что мол не преобразуется дата — лечится изменением языка в сиквеле для учетки(SDK) из под которой трудится SCOM.
2) Ошибка изменения правил, вьюшек и прочего — лечится переносом базы на сиквел сервер с нужной сортировкой(SQL_Latin1_General_CP1_CI_AS)
Scio me nihil scire
-
Предложено в качестве ответа
9 июля 2012 г. 8:30
-
Помечено в качестве ответа
Vladimir ZelenovEditor
23 июля 2012 г. 13:53
-
Предложено в качестве ответа
- Сообщения за день
- Список участников
- Инструкции
- Главная
- Форум
- Добро пожаловать на buhsoft.ru
- Учет и отчетность в ПФР, ИФНС, ФСС и т.д.
- Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел.
-
- Регистрация: 01.02.2007
- Сообщений: 3914
- Спасибо: 88
В схеме и АРМе:…<xsd:schema xmlns:xsd=»http://www.w3.org/2001/XMLSchema» …
Проверки хотят:xmlns:xsd=»http://www.w3.org/2001/XMLSchema-instance»
Почему?
В схеме что-то этого не нашёл. По АРМ здесь уже обсуждали — там отличие от написанного на f4.fss.ru (пост 28); версию АРМ нужно обновить.
-

Спасибо
0
Комментарий
-

сегодня последний день сдачи за 2кв2017… блинчик, а у меня странная ошибка вылезла: В ходе проверки (0.92) расчета выявлены следующие ошибки:
- — Error in validateByWebService(XML ver. «0.92», prev XML ver. «») =>
- Создатель этой ошибки не указал Reason.
И это я на портале ФСС заполняла.
Помогите, плиз, починить
-

Спасибо
0
Комментарий
-
- Регистрация: 01.02.2007
- Сообщений: 3914
- Спасибо: 88
сегодня последний день сдачи за 2кв2017… блинчик, а у меня странная ошибка вылезла: В ходе проверки (0.92) расчета выявлены следующие ошибки:
- — Error in validateByWebService(XML ver. «0.92», prev XML ver. «») =>
- Создатель этой ошибки не указал Reason.
И это я на портале ФСС заполняла.
Помогите, плиз, починитьСам файл отчёта открывается браузером?
-

Спасибо
0
Комментарий
-

Да
<?F4FORM version=»0.92″ appname=»portal.fss.ru»?>
-

Спасибо
0
Комментарий
-
-

отправила как есть, с ошибкой. Приняли ))))
-

Спасибо
0
Комментарий
-
-
Местный
- Регистрация: 19.03.2011
- Сообщений: 192
- Спасибо: 1
Подскажите пожалуйста, где посмотреть формат отчета 4-фсс за 9 месяцев 17-го
-

Спасибо
0
Комментарий
-
Новичок
- Регистрация: 09.01.2007
- Сообщений: 197
- Спасибо: 0
Подскажите пожалуйста, где посмотреть формат отчета 4-фсс за 9 месяцев 17-го
Тоже интересно ктонибудь этот формат видел?
-

Спасибо
0
Комментарий
-
Новичок
- Регистрация: 02.03.2013
- Сообщений: 218
- Спасибо: 23
-

Спасибо
0
Комментарий
-
Местный
- Регистрация: 16.03.2010
- Сообщений: 2023
- Спасибо: 185
Кто-нибудь знает где будет располагаться схема к формату 0.93?
-

Спасибо
0
Комментарий
-
Новичок
- Регистрация: 22.01.2008
- Сообщений: 69
- Спасибо: 10
-

Спасибо
0
Комментарий
-
Новичок
- Регистрация: 06.04.2010
- Сообщений: 2160
- Спасибо: 0
-

Спасибо
0
Комментарий
-
Местный
- Регистрация: 19.03.2011
- Сообщений: 192
- Спасибо: 1
-

Спасибо
0
Комментарий
-
Местный
- Регистрация: 16.03.2010
- Сообщений: 2023
- Спасибо: 185
[QUOTE=Rak;n295000]Спасибо!
[/QUOTE
Самая большая интрига будет с расположением схемы к формату 0.93. В формате это не описано.
Сейчас, судя по расположенной информации на http://f4.fss.ru нет специальной информации по расположению. По старой ссылке расположен формат 0.92.
В прошлом году были проблемы с Контур-Экстерном в аналогичной ситуации.
-

Спасибо
0
Комментарий
-

А когда будет обновлена программа СheckXML+2НДФЛ 2017?
-

Спасибо
0
Комментарий
-
-
Новичок
- Регистрация: 23.03.2017
- Сообщений: 5
- Спасибо: 0
Когда можно ожидать изменений в программе СheckXML+2НДФЛ 2017?
-

Спасибо
0
Комментарий
- Помощь
- Обратная связь
- Вверх
Часовой пояс GMT3. Страница сгенерирована в 06:00.
Обработка…
1. Вопрос: Куда обращаться в случае возникновения проблем при работе с программой «ЕИАС Мониторинг»?
Ответ:
1) Если проблемы имеют технический характер (например, не отправляются шаблоны, программа выдает ошибку сервера, при входе в программу появляется ошибка, связанная с сертификатом), то Вам необходимо обратиться в службу технической поддержки ЕИАС. Контакты указаны в разделе «Техническая поддержка».
2) Если проблемы связаны с заполнением шаблонов, вопросами в области регулируемой деятельности, то необходимо обращаться к уполномоченным соответствующих отделов РСТ Дагестана.
3) При отсутствии Вашей организации в общем списке шаблона, при отсутствии подключения к региональному серверу (сервер «Республика Дагестан»), при появлении сообщения об ошибке при входе в программу «ЕИАС Мониторинг» — следует обращаться к специалистам РСТ Дагестана, ответственным за Региональный сегмент системы ЕИАС по телефону 8 928 506 96 05.
4) При возникновении проблем с регистрацией организации на портале регионального сегмента https://regportal-tariff.ru/, следует обращаться в Службу поддержки пользователей регионального сегмента ЕИАС по адресу https://my-sp.ru/.
2. Вопрос: Как проверить настройки программы «ЕИАС Мониторинг» для работы с регионом Республика Дагестан?
Ответ:
После входа в программу «ЕИАС Мониторинг» необходимо переместить указатель мыши к нижнему правому углу окна программы (где указано название сервера). Появится всплывающее окно «Текущие серверы», в котором будут указаны серверы, выбранные для работы в системе, а также их статус. Рабочее состояние серверов отображается зеленым круглым индикатором. В случае, если цвет подключенного сервера имеет цвет, отличный от зеленого (желтый или красный), необходимо обратиться к разделу по настройке и работе с программой (находится в разделе «Инструкции»). Если решить проблему самостоятельно не удается, необходимо обратиться в службу технической поддержки ЕИАС (см. раздел сайта «Техническая поддержка».
3. Вопрос: Почему при заполнении шаблонов ЕИАС не обновляется реестр организаций или муниципальных образований?
Ответ:
Для того, чтобы данные в шаблоне успешно обновились, необходимо наличие подключение компьютера с заполняемыми шаблонами к сети Интернет. Также обновлению шаблонов может препятствовать установленное программное обеспечение – попробуйте запустить программу «ЕИАС Мониторинг» на другом компьютере, имеющем доступ в сеть Интернет. В ряде случаев обновлению шаблонов может препятствовать работа компьютера через прокси-сервер.
4. Вопрос: Как узнать причину отклонения шаблона ЕИАС?
Ответ:
Для просмотра причины отклонения необходимо зайти в раздел «Узнать результат рассмотрения» программы «ЕИАС Мониторинг», найти и открыть нужный запрос, затем двойным щелчком выделить строку с названием отправленного шаблона. Далее ещё раз выделить строку с названием отправленного файла. В результате станут доступны две кнопки «История ответов по этому файлу» (многоточие) и «Комментарий по файлу ответа» (знак вопроса). Причину отклонения можно узнать, нажав знак вопроса.
5. Вопрос: Как выгрузить шаблон и ответить на запрос, срок которого истёк?
Ответ:
Находясь в программе «ЕИАС Мониторинг», нужно зайти в раздел «Запросы регулятора» и нажать на кнопку «В архиве Х запросов с истекшим сроком. Нажмите, чтобы перейти в архив». В архиве запросов необходимо выбрать требуемый запрос, двойным щелчком мыши зайти в него и действовать так же, как и при работе с действующими запросами раздела «Запросы регулятора» (сохранить шаблон на компьютер или отправить уже заполненный шаблон).
6. Вопрос: Что делать, если при регистрации организации на портале ЕИАС отсутствует организация, за которую необходимо отчитываться?
Ответ:
Данная ситуация означает, что организация отсутствует в Реестре ФАС. В случае, если заявку на регистрацию формирует администрация муниципального образования, либо Вы планируете заполнить это поле позднее, Вы можете выбрать на текущей странице только регион и нажать кнопку «Далее». Для уточнения данных и добавления организации в Реестр ФАС необходимо связаться со специалистами РСТ Дагестана по телефону 8 928 506 96 05 или с помощью письма, отправленного на электронную почту rst@e—dag.ru.
7. Вопрос: Какой срок предоставления отчетности является приоритетным – указанный в сопроводительном письме, либо указанный в запросе к шаблону?
Ответ:
Необходимо ориентироваться на сроки, указанные в официальном письме к шаблону, так как в программе «ЕИАС Мониторинг» по техническим причинам не всегда есть возможность указать точный срок предоставления отчетности.
8. Вопрос: Как обновить файл базы данных «ЕИАС Мониторинг»?
Ответ:
1. Закрыть программу «ЕИАС Мониторинг».
2. Удалить файл базы данных пользователя — ххххх.MDB (где ххххх — логин пользователя в ЕИАС), который может храниться по следующим адресам:
C:ProgramDataФАС РоссииЕИАС Мониторинг — АРМ Специалиста
3. Удалить файлы настроек — ххххх_SETTINGS.MDB (где ххххх — логин пользователя в ЕИАС) и SETTINGS.MDB, которые хранятся в папке по адресу:
c:Users»Пользователь»AppDataRoaming ФАС РоссииЕИАС Мониторинг — АРМ СпециалистаSettings
4. Запустить «ЕИАС Мониторинг», зайти в раздел «Настройки» и провести повторную настройку (адреса серверов отчетности, сертификаты и пр.).
9. Вопрос: В программе ЕИАС Мониторинг не отображается список региональных серверов
Ответ:
Для получения регионального списка серверов необходимо выполнить несколько действий:
1. Загрузите файл alternate_server.reg и запустите, после этого система попросит внести изменения в реестр, подтвердите это нажатием на кнопку «Да»;
2. Запустите модуль ЕИАС Мониторинг и в настройках обновите список серверов, нажатием на соответствующую кнопку .
После выполненных действий в списке серверов появится полный перечень регионов.
ВАЖНО! Во время запуска файла alternate_server.reg модуль ЕИАС Мониторинг должен быть закрыт на рабочем месте пользователя.
10. Вопрос: В программе ЕИАС Мониторинг не получается отправить шаблон, на запрос регулятора.
Ответ:
Данная проблем замечена у абонентов интернет провайдера «Эллко», для ее устранения необходимо чтоб интернет провайдер выделил вам «Белый» ipили установить Kasperskysecureconnectionи включить его, а дальше повторно отправить шаблон.
Ссылка для скачивания Kaspersky secure connection https://www.kaspersky.ru/downloads/thank-you/free-vpn-secure-connection-pc
11. Вопрос: При входе в систему появляется следующая ошибка «Для Вашей учетной записи работа в АРМ Специалиста более не поддерживается. Для отправки отчетов используйте интернет приложение ЕИАС. WEB»
Ответ:
Необходимо в настройках клиента «ЕИАС Мониторинг» (АРМ специалиста) сделать сервер Республики Дагестан главным, если не отображается список региональных серверов, то смотрите вопрос №9
12. Вопрос. Неверный формат, ожидается ссылка на документ вида
Ответ:
Ошибка возникает при несоответствии указываемой в отчёте ссылки на обосновывающий документ формату, предъявляемому требованиями конкретной отчётной формы.
Например, так выглядит ошибка при заполнении отчетной федеральной отчётной формы, если структура ссылки не соответствует требуемому формату:

Обращайте внимание на требуемый формат ссылок!
В федеральных отчётах принимаются ссылки на файлы, загруженные исключительно на сервер ФАС, которые имеют формат https://portal.eias.ru/Portal/DownloadPage.aspx?type=12&guid=????????-????-????-????-????????????
В веб-версии “ЕИАС Мониторинг — АРМ Специалиста” https://web.eias.ru нет региональной части, так что любой документ, загруженный в «Хранилище документов» в веб-версии будет иметь нужный формат.
Скопированную ссылку следует вставить в соответствующую ячейку заполняемой отчётной формы. Вставка ссылки может осуществляться через меню «Вставка», либо выбором значения из контекстного меню «Добавить ссылку», либо сочетанием клавиш на клавиатуре CTRL+V в зависимости от типа отчётной формы.