powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / webservice через tcp/ip
37 сообщений из 37, показаны все 2 страниц
webservice через tcp/ip
    #37746141
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Net2
webservice через tcp/ip
можно ли реализовать такое и как ?
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37746429
Фотография AHTOH_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрите в сторону WCF.

И задачу подробнее опишите, не совсем понятно что вы хотите сделать.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37746504
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael RNet2
webservice через tcp/ip
можно ли реализовать такое и как ?

вебсервисы и работают через tcp/ip.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37751519
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надо что бы запросы были не через http а именно через tcp/ip
WCF нету поскольку NET2
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37751709
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael R,

TCP/IP = "Туева Хуча Протоколов",

Что нужно конкретно?
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37751801
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
честно говоря не знаю что конкретно

установка гласит так :
данные должны передаваться не как текст , а как бинарный набор
соответствено должна быть сереализация этого набора при приёме данных

вот такое надо сделать через WebService в Net2
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37751904
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael R,

Короче, если файлы не очень большие, делаешь так:

говнокод:
веб служба
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        [WebMethod]
        public byte[] GetFile(string filename)
        {
            BinaryReader binReader = new BinaryReader(File.Open(Server.MapPath("~/" + filename), FileMode.Open, FileAccess.Read));
            binReader.BaseStream.Position = 0;
            byte[] binFile = binReader.ReadBytes(Convert.ToInt32(binReader.BaseStream.Length));
            binReader.Close();
            return binFile;
        }

        [WebMethod]
        public void PutFile(byte[] buffer, string filename)
        {
            BinaryWriter binWriter = new BinaryWriter(File.Open(Server.MapPath("~/" + filename), FileMode.CreateNew, FileAccess.ReadWrite));
            binWriter.Write(buffer);
            binWriter.Close();
        }


тестовая страница
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
...
<title>Тест службы</title>
    <script language="javascript" type="text/javascript">
<!--

        function Button1_onclick()
        {
            MyProject.Services.MyService.GetFile('исходный файл.docx', function(data)
            {
                //alert(data);
            })
        }

        var bin = []

        function Button2_onclick()
        {
            MyProject.Services.MyService.PutFile(bin,'новый файл.docx', function(data)
            {
                //alert(data);
            })
        }

// -->
    </script>
</head>
<body>
    <form id="form1" runat="server" enctype="multipart/form-data">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
            <asp:ServiceReference Path="~/services/myservice.asmx" />
        </Services>
    </asp:ScriptManager>
    <div>
        <h3>
            Работа с файлами</h3>
        <p>
            <input id="Button1" type="button" value="Get file" onclick="return Button1_onclick()" />
            <input id="Button2" type="button" value="Put file" onclick="return Button2_onclick()" /></p>
    </div>
    </form>
</body>
</html>


Метод GetFile пришлет типа {"d":[80, 75, 3, 4, 20, 0, 6, 0, 8, 0, 0, 0, ...... ]} . Если скопировать этот массив в bin (для Button2_onclick()):
var bin = [80, 75, 3, 4, 20, 0, 6, 0, 8, 0, 0, 0, ...... ]
то появится новый, идентичный исходному файл.

Дерзай - более ничем помочь не могу, телепатией не обладаю...

ПС : Ессно, MyProject.Services.MyService будет у тебя свое...
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37751923
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок спасибо

попробуем
только у нас не файлы , но это уже не столь важно
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37751951
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael R,

Скажу сразу, что мой пример идет в разрез с требованиями - это как раз передача текста, причем в JSON формате.
Есть бинарный XML, но я с ним никогда не сталкивался.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37751990
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понимаю, вэбсервисы всегда, так или иначе, передают данные в текстовом виде. Хотя, может имелся ввиду base64?
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37752001
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael Rчестно говоря не знаю что конкретно

установка гласит так :
данные должны передаваться не как текст , а как бинарный набор
соответствено должна быть сереализация этого набора при приёме данных

вот такое надо сделать через WebService в Net2Только сейчас задумался - при чем тут тогда веб-сервисы? Веб службы и были задуманы для передачи всякого именно через 80 порт - HTTP протокол, как наиболее распространенного.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37752196
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iConstmichael Rчестно говоря не знаю что конкретно

установка гласит так :
данные должны передаваться не как текст , а как бинарный набор
соответствено должна быть сереализация этого набора при приёме данных

вот такое надо сделать через WebService в Net2Только сейчас задумался - при чем тут тогда веб-сервисы? Веб службы и были задуманы для передачи всякого именно через 80 порт - HTTP протокол, как наиболее распространенного.
Тем более, всё, что не через http не называется вэбом.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37752464
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iConst Только сейчас задумался - при чем тут тогда веб-сервисы? Веб службы и были задуманы для передачи всякого именно через 80 порт - HTTP протокол, как наиболее распространенного.

во-во
мы не ищем лёгких путей
вернее нас заставляют их искать.......
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37752568
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael Rво-во
мы не ищем лёгких путей
вернее нас заставляют их искать.......Использовать .Net Remoting или WSE?
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37791129
Фотография AHTOH_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будет ли работать под IIS в WCF привязка NetTcpBinding или NetNamedPipeBinding?
Или под IIS только привязки на основе HTTP?
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37791159
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37791325
Фотография AHTOH_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ , я же не об этом.

можно ли в asp.net приложение(не с помощью службы windows) создать WCF Service с привязкой NetTcpBinding или NetNamedPipeBinding?
Т.е. чтобы всё работало под IIS.

P.S. судя по всему нельзя :(
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37791338
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AHTOH_L МСУ , я же не об этом.

можно ли в asp.net приложение(не с помощью службы windows) создать WCF Service с привязкой NetTcpBinding или NetNamedPipeBinding?
Т.е. чтобы всё работало под IIS.

P.S. судя по всему нельзя :(

А я не Вам отвечал. По вопросу точно не скажу, может через какой изврат через одно место и можно так сделать. Но не нужно.
Базовые принципы для адекватного SOA на WCF: WCF должен хоститься в отдельной независимой песочнице - Windows службе , в IIS'е ему делать нечего.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37791896
SOA на WCF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ > SOA на WCF: WCF должен хоститься в отдельной независимой песочнице - Windows службе, в IIS'е ему делать нечего

На счет независимой, согласен. Но почему "в IIS`e ему делать нечего" ?
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37791984
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOA на WCFНа счет независимой, согласен. Но почему "в IIS`e ему делать нечего" ?
Потому, что IIS - это уже зависимость со всеми вытекающими. Начнутся серьезные проблемы при трансфере больших файлов, например.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792037
Фотография timda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУSOA на WCFНа счет независимой, согласен. Но почему "в IIS`e ему делать нечего" ?
Потому, что IIS - это уже зависимость со всеми вытекающими. Начнутся серьезные проблемы при трансфере больших файлов, например.

Проблемы начинаются тогда, когда разработчики считают что они умнее Майкрософт.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792064
МСУSOA на WCFНа счет независимой, согласен. Но почему "в IIS`e ему делать нечего" ?
Потому, что IIS - это уже зависимость со всеми вытекающими. Начнутся серьезные проблемы при трансфере больших файлов, например.

Property MaxRequestLength
Type: System.Int32
The maximum request size in kilobytes. The default size is 4096 KB (4 MB).
Код: c#
1.
2.
// Set the MaxRequestLength property value to 10240 kilobytes.
configSection.MaxRequestLength = 10240;
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792295
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timdaПроблемы начинаются тогда, когда разработчики считают что они умнее Майкрософт.
Проблемы начинаются тогда, когда разработчики не читают рекомендации Майкрософт: Рекомендации по размещению в службах IIS

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

...По умолчанию сообщения, отправляемые в службу WCF, которая размещается в службах IIS 6.0 и более ранних версий, обрабатываются в синхронном режиме. ASP.NET вызывает WCF в собственном потоке (рабочий поток ASP.NET), а WCF использует для обработки запроса другой поток. WCF удерживает рабочий поток ASP.NET до завершения обработки. В результате обработка запросов выполняется синхронно. Асинхронная обработка запросов расширяет возможности масштабирования, поскольку в этом случае сокращается число потоков, необходимое для обработки запроса, — WCF не удерживает поток ASP.NET в течение обработки запроса. Асинхронный режим не рекомендуется для компьютеров со службами IIS 6.0, поскольку в этой версии отсутствует возможность регулирования входящих запросов и сервер становится уязвимым к атакам типа Отказ в обслуживании.

Далее, читаем Application Architecture Guide v2.

Руководство MICROSOFT по проектированию архитектуры приложений
Определите стратегию связи с другими слоями.
...
Если бизнес-логика или логика доступа к данным будет использоваться слоем представления в рамках внутренней сети, используйте WCF-службу, работающую по протоколу TCP. Если бизнес-логика или логика доступа к данным будет использоваться слоем представления через Интернет, используйте WCF-службу, работающую по протоколу HTTP. Если в бизнес-логике или логике доступа к данным предполагаются длительные вызовы, реализуйте асинхронную связь с помощью WCF и очереди сообщений.



И на закуску: Размещение и использование служб Windows Communication Foundation

Размещение в службах Windows...Размещение службы WCF в службе Windows является логичным выбором.

Вот преимущества данного подхода.

Автоматический запуск. Диспетчер управления службами Windows позволяет выбрать автоматический тип запуска, чтобы при запуске Windows служба запускалась без использования диалога регистрации на компьютере.

Восстановление. В диспетчере управления службами Windows имеется встроенная поддержка для повторного запуска служб в случае возникновения сбоев.

Удостоверение безопасности. Диспетчер управления службами Windows позволяет выбирать конкретное удостоверение безопасности, в рамках которого должна запускаться служба, включая встроенные системные или сетевые учетные записи службы.

Управляемость. В общем случае операторы Windows хорошо осведомлены о возможностях диспетчера управления службами и других средств управления, работающих с процедурами установки и настройки служб Windows. Это способствует внедрению служб Windows в производственные среды; однако, чтобы обеспечить удобную поддержку служб, возможно, придется добавить некоторые инструментальные средства и компоненты для ведения журналов.

Поддержка всех привязок и транспортов. Размещение на собственном сервере никоим образом не ограничивает возможностей использования исходных привязок и транспортов. В Windows XP и Windows Server 2003 сервер IIS требует только обязательного использования HTTP.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792301
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому, что IISМСУпропущено...

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

Property MaxRequestLength
Type: System.Int32
The maximum request size in kilobytes. The default size is 4096 KB (4 MB).
Код: c#
1.
2.
// Set the MaxRequestLength property value to 10240 kilobytes.
configSection.MaxRequestLength = 10240;



Не всё так просто. WCF Streaming under IIS consuming large amounts of server memory

...Thanks for the suggestion. I did start to implement the yield return but didn't manage to get it completed. I ran into issues around how to break up the file and then reconstitute it at the other end. Just seemed like I would have to write a lot of code, similar to manually chunking the file.

In the end I got my proof-of-concept up and running with streaming, but NOT OVER IIS. I ended up manually hosting the service using a windows service. I am using net tcp transfer, and streaming is working like a charm.

Thanks to all who contributed here. Any more thoughts please let me know!
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792328
МСУ,

When you host your service under IIS, no matter if you enable streaming or not, your service will buffer the entire message prior to sending it.
The reason for this, is that it appears as though WCF does not set the Response.BufferOutput to "false" (default is true), when streaming is enabled on a service.
This seems to be an oversight in my opinion, that could be rectified in the framework code.
So the good news is, there is a way around this issue:

Since we want to somehow set that Response.BufferOutput to false, we need to get at the HttpContext. The flexibility of WCF comes to our aid here with the ability to enable AspNet Compatibility Mode, there are 3 changes we need to make to the service, to work around this issue.

1) Add the following attribute to your service:
Код: c#
1.
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]


2) Inside the default constructor for your service, or wherever you want to set the bufferoutput property paste this code:

Код: c#
1.
2.
3.
4.
5.
6.
HttpContext httpContext = HttpContext.Current;
 
if (httpContext != null)
{
    httpContext.Response.BufferOutput = false;
}



3) Inside <system.serviceModel> place the following tag

Код: c#
1.
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792339
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё так просто
1. BufferOutput не поможет, поможет отдельная песочница.
2. Копипастить неработающие ответы я тоже могу. Садись, двойка
3. Читай выше рекомендации лучше, а копипастить пусть будут копипастеры.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792340
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё так просто
А вообще, серый, учись пруфлинк давать с цитирированием. Иначе цена твоего "копипаста" - $0.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792350
&#36;0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУвсё так просто
А вообще, серый, учись пруфлинк давать с цитирированием. Иначе цена твоего "копипаста" - $0.

Не вопрос, синий, "копипаста" отселя -> http://weblogs.asp.net/jclarknet/archive/2008/02/14/wcf-streaming-issue-under-iis.aspx
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792358
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$0Не вопрос, синий, "копипаста" отселя -> http://weblogs.asp.net/jclarknet/archive/2008/02/14/wcf-streaming-issue-under-iis.aspx
Первый же каммент:
...i've tried this and got a hang up of iis or wcf =[
the response just does not come out =[
Следующий каммент:

...Your article hit the nail on the head for exactly the issue I am having. However I implemented the solution you suggested (httpContext.Response.BufferOutput = false) and it did not solve my problem.

Once the file being cached hits the 2GB limit (this can be seen by hitting the F5 key to watch the file grow as it is streamed), the exception above is thrown.
Well as long as the files being streamed are 2GB or less this is not a problem.


P.S. Так что опять мимо, копипастер :) Еще раз говорю, стримминг больших файлов через WCF на IIS хостинге - зло. Либо осознай это либо убей себя об стену.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792363
МСУ$0Не вопрос, синий, "копипаста" отселя -> http://weblogs.asp.net/jclarknet/archive/2008/02/14/wcf-streaming-issue-under-iis.aspx
Первый же каммент:
...i've tried this and got a hang up of iis or wcf =[
the response just does not come out =[
Следующий каммент:

...Your article hit the nail on the head for exactly the issue I am having. However I implemented the solution you suggested (httpContext.Response.BufferOutput = false) and it did not solve my problem.

Once the file being cached hits the 2GB limit (this can be seen by hitting the F5 key to watch the file grow as it is streamed), the exception above is thrown.
Well as long as the files being streamed are 2GB or less this is not a problem.


P.S. Так что опять мимо, копипастер :) Еще раз говорю, стримминг больших файлов через WCF на IIS хостинге - зло. Либо осознай это либо убей себя об стену.

Ну и накой ты "накопипастил" комменты каких-то ламеров?
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792365
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо осознай это либо убейНу и накой ты "накопипастил" комменты каких-то ламеров?
"Аргументы" закончились?
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792380
МСУЛибо осознай это либо убейНу и накой ты "накопипастил" комменты каких-то ламеров?
"Аргументы" закончились?

Да я собственно и не дискутирувал, так скопипастил текст из соседней статьи на которую ты сцылко опубликовал.
Все мои WCF проекты живут на IIS и ни че.
Файло больше двух ГБ гонять через http не буду, уговорил :]
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792393
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Либо осознай это либо убей]Все мои WCF проекты живут на IIS и ни че.
Да они и будут жить, кто ж спорит. Вот тут 12546440 я дал подробную информацию, почему лучше хостить WCF в Windows сервисе. А так, чисто по-пионерски, можно и в Console Application захостать, всё будет работать.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792475
МСУ,

Причем тут консоль апликейшн не понял апче и почему "хостать" нужно "по пионэерски" тоже.

сцылко
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792618
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо осознай это либо убейМСУ,
Причем тут консоль апликейшн не понял апче и почему "хостать" нужно "по пионэерски" тоже.
сцылко
Вырастешь - поймешь. А пока хостай в IIS'e.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792621
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУAHTOH_Lможно ли в asp.net приложение(не с помощью службы windows) создать WCF Service с привязкой NetTcpBinding или NetNamedPipeBinding?
Т.е. чтобы всё работало под IIS.
P.S. судя по всему нельзя :(
может через какой изврат через одно место и можно так сделать. Но не нужно.
Антон, всё-таки нельзя.

http://msdn.microsoft.com/ru-ru/library/ms730158.aspx Обратите внимание, что службы, размещаемые в IIS, могут использовать только транспорт HTTP.
...
Рейтинг: 0 / 0
webservice через tcp/ip
    #37792644
Фотография AHTOH_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, Спасибо
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / webservice через tcp/ip
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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