powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Передача изображения на wpf клиента
6 сообщений из 6, страница 1 из 1
Передача изображения на wpf клиента
    #37488270
Johnyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема заключается в следующем: Нужно передать изображение через wcf сервис wpf клиенту, изображения хранятся в базе как ссылки следующего типа: \e\a5\ea5d2f1c4608232e07d3aa3d998e5135.jpg привожу код сервиса и клиента:
Сервис:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
public Stream GetMainImage(int id_all, string type)
{
    DataTable Table = new DataTable();
    Table = ImageAdaptre.GetMainImage(id_all, type);
    //Stream stream = new FileStream(@"D:\image" + Table.Rows[0][4], FileMode.Open);
    FileStream stream = File.OpenRead(@"D:\image" + Table.Rows[0][4]);
    return stream;
}
Клиент:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    Stream stream = new MemoryStream(ServiceImage.GetMainImage(25, "product"));
    BitmapImage bit = new BitmapImage();
    BeginInit();
    bit.StreamSource = stream;
    bit.CacheOption = BitmapCacheOption.OnLoad;
    EndInit();
    Image1.Source = bit;
Stream приходит почему-то в виде байт, а в bit.StreamSource не добавляется

Ну и в довесок кастомная авторизация при попытке открытия хоста ругается на https адрес, а если использовать просто http то ругается на строчку выше, требует https, может где-то еще параметр есть
Код: plaintext
1.
2.
3.
    Type serviceTypeImage = typeof(Example.Services.Image);
    Uri serviceUriImage = new Uri("https://IP/image");
    ServiceHost hostImage = new ServiceHost(serviceTypeImage, serviceUriImage);
    hostImage.Open();
Спасибо!
...
Рейтинг: 0 / 0
Передача изображения на wpf клиента
    #37489239
Фотография n_string
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСервис:Возвращайте byte[]
авторКлиент:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
StreamServiceClient client = new StreamServiceClient();
            byte[] buffer = client.GetImageData(index);

            MemoryStream memoryStream = new MemoryStream(buffer);

            BitmapImage bitmapImage = new BitmapImage();
            bitmapImage.BeginInit();
            bitmapImage.StreamSource = memoryStream;
            bitmapImage.EndInit();
            imgMain.Source = bitmapImage;

            client.Close();
авторStream приходит почему-то в виде байт, а в bit.StreamSource не добавляетсяЕстественно, он же передается обычной строкой.
авторкастомная авторизацияЭто не понял.
...
Рейтинг: 0 / 0
Передача изображения на wpf клиента
    #37490147
Johnyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
За изображения большое спасибо
На счет авторизации возможно я что-то недопониманию
Конфиг сервиса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<serviceMetadata httpGetEnabled="true"/>

<serviceCredentials>
              <userNameAuthentication
              userNamePasswordValidationMode="Custom"
              customUserNamePasswordValidatorType="Example.CustomValidator, Example"/>
</serviceCredentials>

<service name ="Example.Services.Order">
        <endpoint binding="wsHttpBinding" bindingConfiguration="OrderConfiguration"
                  contract="Example.Interfaces.IOrder"/>   
</service>

<wsHttpBinding>
        <binding name="OrderConfiguration">
          <security mode="TransportWithMessageCredential">
            <message clientCredentialType="UserName" />
          </security>
        </binding>
</wsHttpBinding>

Сервис поднимаю следующим кодом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Type serviceTypeOrder = typeof(Example.Services.Order);
            Uri serviceUriOrder = new Uri("http://IP:1050/order");
            ServiceHost hostOrder = new ServiceHost(serviceTypeOrder, serviceUriOrder);
            hostOrder.Open();
            foreach (Uri uri in hostOrder.BaseAddresses)
            {
                Console.WriteLine();
                Console.WriteLine("\tСервис работы с таблицей Заказы");
                Console.WriteLine("\t{0}", uri.ToString());
            }
            Console.WriteLine();
            Console.WriteLine("Number of dispatchers listening : {0}", hostOrder.ChannelDispatchers.Count);
            foreach (System.ServiceModel.Dispatcher.ChannelDispatcher dispatcher in host.ChannelDispatchers)
            {
                Console.WriteLine("\t{0}, {1}", dispatcher.Listener.Uri.ToString(), dispatcher.BindingName);
            }
            Console.WriteLine();
            Console.WriteLine("Press <ENTER> to terminate Host");
            Console.ReadLine();
Вылетает ошибка строке ServiceHost hostOrder = new ServiceHost(serviceTypeOrder, serviceUriOrder); Адрес не https укажите базовый адрес, меня адрес на https, в результате хост не открывается "не указан базовый адрес"
Прописывал адрес конфиге: <serviceMetadata httpGetEnabled="true" BaseUrl=" http://IP:1050" /> но там вылетает ошибка на всех сервисах.

Может вы знаете способ проще для создания обычной авторизации Логин/Пароль
Спасибо!
...
Рейтинг: 0 / 0
Передача изображения на wpf клиента
    #37490627
Фотография n_string
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу вам посоветовать, т.к. тема очень большая, политика аутентификации рассматривается в каждом отдельном случае.
wsHttpBinding - это защищенное соединение, имейте ввиду. Поэкспериментируйте пока с basicHttpBinding.
...
Рейтинг: 0 / 0
Передача изображения на wpf клиента
    #37490634
Фотография n_string
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Усли есть время, сходите сюда . Наташа хорошо объясняет все виды аутентификации. Выбирайте на свой вкус.
...
Рейтинг: 0 / 0
Передача изображения на wpf клиента
    #37491683
Johnyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
n_string, Хорошо, спасибо
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Передача изображения на wpf клиента
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]