NagaRaju Pesarlanka Ответов: 1

Удаленный сервер вернул ошибку: (403) запрещено.


Привет,
У меня есть проблема с чтением RSS-данных.
мой код таков
string url = "http://wwww.test.com";
                XmlTextReader reader = new XmlTextReader(url);
                var xmlDocument = new XmlDocument();
                xmlDocument.Load(reader);


Я получил эту ошибку

System.Net.WebException was caught
  HResult=-2146233079
  Message=The remote server returned an error: (403) Forbidden.
  Source=System
  StackTrace:
       at System.Net.HttpWebRequest.GetResponse()
       at System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)
       at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)
       at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
       at System.Xml.XmlTextReaderImpl.OpenUrlDelegate(Object xmlResolver)
       at System.Threading.CompressedStack.runTryCode(Object userData)
       at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
       at System.Threading.CompressedStack.Run(CompressedStack compressedStack, ContextCallback callback, Object state)
       at System.Xml.XmlTextReaderImpl.OpenUrl()
       at System.Xml.XmlTextReaderImpl.Read()
       at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
       at System.Xml.XmlDocument.Load(XmlReader reader)
       at BatchJobshuntable.batchjobs.CompanyReviews.DynamicCompanies(Int32 cid, String url) in E:\29-10-2014 BatchjobCode\BatchJobshuntable\batchjobs\CompanyReviews.cs:line 75
  InnerException: 


Я не понимаю, почему он пришел.
Пожалуйста, помогите мне
Спасибо.

DamithSL

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

NagaRaju Pesarlanka

спасибо что ответили мне,
2 дня назад тоже все работало нормально, теперь не работает,
никаких проблем с интернетом и настройкой брандмауэра. Все хорошо, но я не получаю доступа к url-адресу.

DamithSL

проверьте, что пользователь, запустивший вашу службу windows, имеет разрешения на доступ в интернет

NagaRaju Pesarlanka

Я использую консольное приложение.
все мои службы работают под управлением администратора.

DamithSL

при запуске консольного приложения из visual studio вы получаете ту же ошибку?

NagaRaju Pesarlanka

да.

NagaRaju Pesarlanka

ВС-2010

DamithSL

перейдите в папку bin, запустите ее от имени администратора и проверьте ошибку.
вы не возражаете, если я попрошу фактический rss-url?

NagaRaju Pesarlanka

Я получил решение.
Веб-клиент веб-клиент = новый Вебклиент();
служба WebClient.Headers.Add("user-agent", "MyRSSReader/1.0");

Читатели XmlReader = XmlReader.Создание(веб-клиента.OpenRead(url));
ВАР XmlDocument объект = новый объект XmlDocument();
объект XmlDocument.Нагрузка(читатели);

1 Ответов

Рейтинг:
1

NagaRaju Pesarlanka

string url="http://www.test.com";
WebClient webClient = new WebClient();
                webClient.Headers.Add("user-agent", "MyRSSReader/1.0");

                XmlReader readers = XmlReader.Create(webClient.OpenRead(url));
                var xmlDocument = new XmlDocument();
                xmlDocument.Load(readers);