Гость
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / wsdl под MTOM / 20 сообщений из 20, страница 1 из 1
04.06.2012, 18:05
    #37824794
grrh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
Есть веб-сервис на java, у него есть wsdl. Сервис аплоадит файлы.

Как нужно описать тип данных в wsdl, чтобы на клиенте у метода в аргументах генерировался stream, а не byte[] ? Для больших файлов соответствующий массив байт создать нереально. Или может есть какие-то варианты преобразования на клиенте?
...
Рейтинг: 0 / 0
04.06.2012, 18:22
    #37824824
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
grrh,

ну тебе нужно в сервер передать ссылку на stream клтента.
дальше сервер будет у объекта stream вызывает getbytes порционно с какой то периодичностью.
вот собственно и все.
как на java делать, не знаю.
тут .net платформа обсуждается.
...
Рейтинг: 0 / 0
04.06.2012, 18:24
    #37824826
grrh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
на ява - сервер ждёт стрим
а на клиенте студия сгенерировала byte[]
я и спрашиваю - как должен выглядеть wsdl, чтобы студия тоже стрим сгенерировала?
...
Рейтинг: 0 / 0
04.06.2012, 18:25
    #37824828
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
grrh,

покажи как он выглядит сейчас.
...
Рейтинг: 0 / 0
04.06.2012, 18:26
    #37824834
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
быстрый способ это создать сервер с методом принимающим stream и снять с него wsdl.
соотвественно сервер делать на .net уже.
...
Рейтинг: 0 / 0
05.06.2012, 11:37
    #37825564
grrh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
да, я попробовал сделать сервер на .net вчера
не пойму, как это преобразовать к стандарту
Код: xml
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.
<s:element name="uploadFile">
    <s:complexType>
        <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="file" type="tns:Stream"/>
        </s:sequence>
    </s:complexType>
</s:element>
<s:complexType name="Stream" abstract="true">
    <s:complexContent mixed="false">
        <s:extension base="tns:MarshalByRefObject">
            <s:sequence>
                <s:element minOccurs="1" maxOccurs="1" name="Position" type="s:long"/>
                <s:element minOccurs="1" maxOccurs="1" name="ReadTimeout" type="s:int"/>
                <s:element minOccurs="1" maxOccurs="1" name="WriteTimeout" type="s:int"/>
            </s:sequence>
        </s:extension>
    </s:complexContent>
</s:complexType>
<s:complexType name="MarshalByRefObject" abstract="true"/>
<s:element name="uploadFileResponse">
    <s:complexType>
        <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="uploadFileResult" type="s:string"/>
        </s:sequence>
    </s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="uploadFileSoapIn">
    <wsdl:part name="parameters" element="tns:uploadFile"/>
</wsdl:message>



и это на простой
Код: c#
1.
2.
3.
4.
5.
[WebMethod]
public string uploadFile(System.IO.Stream file)
{
            return "Hello World";
}
...
Рейтинг: 0 / 0
05.06.2012, 12:07
    #37825640
grrh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
"родной" выглядит так
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
                <xs:element name="File_Content">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="File_Body" type="xs:base64Binary" xmime:expectedContentTypes="application/octet-stream" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" minOccurs="0">
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
...
Рейтинг: 0 / 0
05.06.2012, 12:25
    #37825665
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
grrh,

похоже, сервер на .net ты создал не верно.
behavior у тебя не тот у bindingА.
...
Рейтинг: 0 / 0
05.06.2012, 12:33
    #37825683
grrh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
Жесть, вроде файл->нью вебсервис.. F5
не затруднит сделать правильный с параметром Stream на вход и выложить кусок wsdl, описывающий stream-аргумент?
сам тоже попробую конечно..
...
Рейтинг: 0 / 0
05.06.2012, 12:42
    #37825704
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
grrh,

так ты покажи, .config файл или код в которым зашиты настройки behaviours и binding(ну он basichttp я полагаю)
...
Рейтинг: 0 / 0
05.06.2012, 12:49
    #37825725
grrh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
у меня нет никаких конфигов и биндингов, окромя серверного wsdl (приводил выше)
чей конфиг файл? проекта в студии?
мне нужно просто wsdl, сгенерированный в студии для метода.
Код: c#
1.
public void upload(Stream stream)


конфиг и биндинг я ниоткуда не беру, его видимо опять же генерирует студия.
...
Рейтинг: 0 / 0
05.06.2012, 12:59
    #37825743
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
grrh,

да она генерит его. посмотри рядом файлик projectname.exe.config
...
Рейтинг: 0 / 0
05.06.2012, 13:03
    #37825760
grrh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
*.exe.config нету
есть только Web.Release.config
Код: xml
1.
2.
3.
4.
5.
6.
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
  </system.web>
</configuration>
...
Рейтинг: 0 / 0
05.06.2012, 13:06
    #37825774
grrh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
есть ещё Web.config

Код: xml
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.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
<?xml version="1.0"?>
<configuration>

    <configSections>
      <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
          <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
            <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
            <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
            <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
          </sectionGroup>
        </sectionGroup>
      </sectionGroup>
    </configSections>  
    <appSettings/>
    <connectionStrings/>
    <system.web>
        <compilation debug="true" >
          <assemblies>
            <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
          </assemblies>
        </compilation>
    <!--
      The <authentication> section enables configuration 
      of the security authentication mode used by 
      ASP.NET to identify an incoming user. 
    -->
    <authentication mode="Windows" />
    <!--
       The <customErrors> section enables configuration 
       of what to do if/when an unhandled error occurs 
       during the execution of a request. Specifically, 
       it enables developers to configure html error pages 
       to be displayed in place of a error stack trace.

       <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
         <error statusCode="403" redirect="NoAccess.htm" />
         <error statusCode="404" redirect="FileNotFound.htm" />
       </customErrors>
    -->
      <pages>
        <controls>
          <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </controls>
      </pages>

      <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
      </httpHandlers>
      <httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </httpModules>
    </system.web>
    <system.codedom>
      <compilers>
        <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
                  type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
          <providerOption name="CompilerVersion" value="v3.5"/>
          <providerOption name="WarnAsError" value="false"/>
        </compiler>
      </compilers>
    </system.codedom>
    <!-- 
        The system.webServer section is required for running ASP.NET AJAX under Internet
        Information Services 7.0.  It is not necessary for previous version of IIS.
    -->
    <system.webServer>
      <validation validateIntegratedModeConfiguration="false"/>
      <modules>
        <remove name="ScriptModule" />
        <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </modules>
      <handlers>
        <remove name="WebServiceHandlerFactory-Integrated"/>
        <remove name="ScriptHandlerFactory" />
        <remove name="ScriptHandlerFactoryAppServices" />
        <remove name="ScriptResource" />
        <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
             type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
             type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </handlers>
    </system.webServer>
    <runtime>
      <assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
          <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
          <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
      </assemblyBinding>
    </runtime>

</configuration>

...
Рейтинг: 0 / 0
05.06.2012, 13:09
    #37825788
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
grrh,

я не понял.
ты хостишь wcf на iis чтоли?
...
Рейтинг: 0 / 0
05.06.2012, 13:17
    #37825805
grrh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
какая разница? я создаю веб-сервис и жму F5, куда студия обычно хостит? может и на IIS..
дай плз ссылку как создать веб-сервис, где я увижу нормальный wsdl
...
Рейтинг: 0 / 0
05.06.2012, 15:17
    #37826103
grrh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
Если я создаю в студии не web-сервис, а wcf-сервис, получаю что-то более внятное

Код: c#
1.
2.
[OperationContract]
string GetData(System.IO.Stream filebody);


Код: xml
1.
2.
3.
4.
5.
6.
7.
<xs:element name="GetData">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="filebody" type="q1:StreamBody"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>


Код: xml
1.
2.
3.
<xs:simpleType name="StreamBody">
    <xs:restriction base="xs:base64Binary"/>
</xs:simpleType>



чего-то не догоняю, почему рестрикшн и как нужно преобразовать мой родной wsdl?
...
Рейтинг: 0 / 0
05.06.2012, 15:22
    #37826114
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
grrh,

слушай ну ты мало спишь) раз вместо wcf сделал web.
дальше тебе видимо самому придется копать.
ты когда листинги делаешь, вырезаешь некоторую инфу - это плохо.
...
Рейтинг: 0 / 0
05.06.2012, 15:48
    #37826177
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
Тут чё-то про это пишут.
...
Рейтинг: 0 / 0
05.06.2012, 16:28
    #37826292
grrh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
wsdl под MTOM
о, спасибо, точно нужно!
Надеюсь смогу разобараться :)
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / wsdl под MTOM / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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