Использование Silverlight 4 WebClient OpenReadCompleted через исключения безопасности на размещенном веб-сервере.Что за проблема? - PullRequest
0 голосов
/ 23 ноября 2010

Кажется простым делом использовать объект WebClient для извлечения содержимого текстового файла в веб-приложении Silverlight.

Он работает в нашей настройке интрасети на локальном сервере, но при развертывании на размещенном сервере "hostgator" WebClient получает исключение безопасности. Следуя предложениям многочисленных веб-блогов, я попробовал политику междоменного доступа и crossdomain.xml, но безрезультатно - все в одном домене.

    private void LoadCSVFile(string csvFile)
    {
        try
        {
            WebClient client = new WebClient();

            client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
            client.OpenReadAsync(new Uri(csvFile, UriKind.Absolute));
        }
        catch (Exception ex)
        {
            string errorMessage = String.Format("Ex accessing csv: {0}\n{1}", csvFile, 

} }

// csvFile - это абсолютный путь: http://myserver.com/myapplication:port/sourcefiles/file.csv // Исходные файлы - это виртуальный каталог на том же веб-сайте, содержащий файлы CSV

    void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            try
            {
                using (System.IO.StreamReader reader = new System.IO.StreamReader(e.Result))
                {
                    mainFileData = new List<string>();
                    string line;
                                        }
            }
            catch (Exception ex)
            {
                string errorMessage = ex.InnerException;

} еще { "вот место для исключения !!!!!!! так, е. ошибка не равна нулю" } }

Текст исключения: System.SecurityException: ошибка безопасности в System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse (IAsyncResult asyncResult) и т. Д.

Проведите 2 дня, прогуливаясь без результата.

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

1 Ответ

1 голос
/ 23 ноября 2010

Несколько вещей для проверки:

(1) Формат URL-адреса, который вы перечисляете (http://myserver.com/myapplication:port/sourcefiles/file.csv), выглядит странно. Разве это не должно быть http://myserver.com:port/myapplication/sourcefiles/file.csv? Или это простоопечатка?

(2) Какой у вас номер порта? Веб-клиент Silverlight будет обращаться только к портам 80 и 443.

(3) Можно ли получить доступ к файлу с помощью прямогоURL-адрес. Иногда веб-серверам необходимо сообщить о конкретном типе файла, прежде чем они разрешат его обслуживание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...