2009-12-06 6 views
2

Я звоню метод на веб-сервиса, и он бросает 403 Forbidden WebException ...Как получить URI, который бросил WebException?

System.Net.WebException: Запрос Сбой статуса HTTP 403: Запретного.

У меня эта ошибка зарегистрирована, но мне очень хотелось бы иметь URI, записанный в сообщении журнала, поэтому легко определить, какой веб-сервис вызывает проблему.

Есть ли простой способ получить URI из созданного WebException? Я просмотрел список свойств, и я не вижу ничего, что доставит мне то, что я хочу.

+1

Вам не нужно URI, чтобы позвонить? – mauris

+0

В моем методе используются два веб-сервиса, которые могут как бросить WebException .... Таким образом, я хотел бы иметь доступ к URI из исключения ... – mezoid

+0

Итак, вы вызываете 2 метода webservice из своих собственных веб-сервис? –

ответ

1

Вы можете получить доступ к свойству Url на вашем прокси-объекте клиента SOAP (SoapHttpClientProtocol).

Если вы вызываете два разных веб-сервиса из одного метода в своем коде, просто добавьте try {} catch вокруг вызовов веб-службы и введите соответствующий пользовательский Exception с свойством Url нарушающей веб-службы.

Что-то вроде:

string url = client.Url; 
try 
{ 
    client.MyWebServiceCall(); 
    url = client2.Url; 
    client2.MyWebServiceCall2(); 
} 
catch (Exception ex) 
{ 
    throw new Exception("Webservice call failed. Url: "+url+", Error:"+ex.Message,ex); 
} 
+0

Я отмечаю это как ответ, потому что Я не понимал, что у webservice есть доступ к свойству Url ... и поскольку у моего кода была обертка вокруг веб-службы, которая не копировала Url, у меня не было доступа к ней. Я изменил свой код, чтобы присвоить Url на завернутом веб-сервисе и убедиться, что мой try-catch - это всего лишь один вызов службы. – mezoid

0

Будьте уверены, что вы не делаете вызов службы через аутентификации требуется Webproxy. Вы получите эту (или, возможно, 401) ошибку и вытащите свои волосы (как я), пытаясь выяснить, где происходит сбой. Я не понимал, что происходит до тех пор, пока я не выполнил трассировку сети, и обнаружил, что запросы попали в наш исходящий аутентифицированный прокси, и запрос не имел учетных данных и возвращался обратно.

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

  • Нет связанных вопросов^_^