powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / SoapExtension: не работает в коде прокси клиента
13 сообщений из 13, страница 1 из 1
SoapExtension: не работает в коде прокси клиента
    #38505890
mixerfixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги,

У меня классический asmx Web Service который вызывает веб службу поставщика.
Я создал 2 идентичных soap extension чтобы перехватывать и записывать в базу XML обмен. Один я повесил на Web Method своего сервиса, а второй прописал в коде сгенеренном по wsdl поставщика - сразу перед определением его метода.

Проблема в том, что на вызов из soapUI моего метода soap extension срабатывает чётко, все пишет в базу. А вот на метод поставщика никакой реакции - ни в дебаг поинт не заходит ни отрабатывает.

WSDL поставщика добавляв как add service reference - advanced - add web reference

Плз, подскажите какие тонкие моменты проверить?

Заранее спасибо!

- код обоих soap extension идентичен и равен
Код: 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.
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.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
public class CLSoapTracer : SoapExtension
    {
        Stream oldStream;
        Stream newStream;
        string filename;
        private NameValueCollection SoapLogging;
        // Save the Stream representing the SOAP request or SOAP response into
        // a local memory buffer.
        public override Stream ChainStream(Stream stream)
        {
            oldStream = stream;
            newStream = new MemoryStream();
            return newStream;
        }
        // When the SOAP extension is accessed for the first time, the XML Web
        // service method it is applied to is accessed to store the file
        // name passed in, using the corresponding SoapExtensionAttribute.   
        public override object GetInitializer(LogicalMethodInfo methodInfo, SoapExtensionAttribute attribute)
        {
            return ((CLTraceExtensionAttribute)attribute).Filename;
        }
        // The SOAP extension was configured to run using a configuration file
        // instead of an attribute applied to a specific Web service
        // method.
        public override object GetInitializer(Type WebServiceType)
        {
            // Return a file name to log the trace information to, based on the
            // type.
            SoapLogging = WebConfigurationManager.GetSection("SoapLogging") as NameValueCollection;
            return SoapLogging["LogFile"];
        }
        // Receive the file name stored by GetInitializer and store it in a
        // member variable for this specific instance.
        public override void Initialize(object initializer)
        {
            filename = (string)initializer;
        }
        //  If the SoapMessageStage is such that the SoapRequest or
        //  SoapResponse is still in the SOAP format to be sent or received,
        //  save it out to a file.
        public override void ProcessMessage(SoapMessage message)
        {
            switch (message.Stage)
            {
                case SoapMessageStage.BeforeSerialize:
                    break;
                case SoapMessageStage.AfterSerialize:
                    WriteOutput(message);
                    break;
                case SoapMessageStage.BeforeDeserialize:
                    WriteInput(message);
                    break;
                case SoapMessageStage.AfterDeserialize:
                    break;
                default:
                    throw new Exception("invalid stage");
            }
        }
        public void WriteOutput(SoapMessage message)
        {
            string soapString = (message is SoapServerMessage) ? "SoapResponse" : "SoapRequest";
            newStream.Position = 0;
            //read to end
            StreamReader XmlContentReader = new StreamReader(newStream);
            DBAdapter DbAdapter = new DBAdapter();
            DbAdapter.LogSoapMessage(XmlContentReader.ReadToEnd(), soapString, "we <-> they");
            //set stream position back to start
            newStream.Position = 0;
            Copy(newStream, oldStream);
        }
        public void WriteInput(SoapMessage message)
        {
            Copy(oldStream, newStream);
            string soapString = (message is SoapServerMessage) ? "SoapRequest" : "SoapResponse";
            newStream.Position = 0;
            StreamReader XmlContentReader = new StreamReader(newStream);
            DBAdapter DbAdapter = new DBAdapter();
            //read to end
            DbAdapter.LogSoapMessage(XmlContentReader.ReadToEnd(), soapString, "we <-> they");
            //set stream position back to start
            newStream.Position = 0;
        }
        void Copy(Stream from, Stream to)
        {
            TextReader reader = new StreamReader(from);
            TextWriter writer = new StreamWriter(to);
            writer.WriteLine(reader.ReadToEnd());
            writer.Flush();
        }
    }
    // Create a SoapExtensionAttribute for the SOAP Extension that can be
    // applied to a Web service method.
    [AttributeUsage(AttributeTargets.Method)]
    public class CLTraceExtensionAttribute : SoapExtensionAttribute
    {
        private NameValueCollection SoapLogging = WebConfigurationManager.GetSection("SoapLogging") as NameValueCollection;
        private string filename = "";
        private int priority;
        public override Type ExtensionType
        {
            get { return typeof(CLSoapTracer); }
        }
        public override int Priority
        {
            get { return priority; }
            set { priority = value; }
        }
        public string Filename
        {
            get
            {
                return SoapLogging["LogFile"]; ;
            }
            set
            {
                filename = value;
            }
        }
    }



- на метод своего сервиса вешаю вот так
Код: c#
1.
2.
3.
[WebMethod(Description = "sendRequest function", EnableSession = true)]
        [CLTraceExtension]
        public string sendRequest(ReportTypes ReportType, PersonIdentifier Person)



- на метод поставщика вешаю так (в Reference.cs, там где по wsdl сгенерился код клиента к их службе)
Код: c#
1.
2.
3.
4.
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://some_ns/", ResponseNamespace="http://some_ns/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterSt yle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        [return: System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [CLTraceExtension]
        public response findInfo([System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] request arg0) {
...
Рейтинг: 0 / 0
SoapExtension: не работает в коде прокси клиента
    #38505903
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixerfixer,
через конфиг не пробовали подключать? http://msdn.microsoft.com/en-us/library/vstudio/esw638yk(v=vs.100).aspx
а зачем их два, имхо можно одним обойтись?
...
Рейтинг: 0 / 0
SoapExtension: не работает в коде прокси клиента
    #38506064
mixerfixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет,

Да, я видел этот config based approach...но решил как то по дедовски сделать + есть тому причина:

- в extension на методах своего сервиса я просто пишу в базу soap xml, а в extension на вызовах метода поставщика я подписываю soap xml (криптопоставщик Iola) во WriteOutput + верифицирую подпись ответа во WriteInput.

А у вас был такой опыт разной логики и считаете что лучше иметь 1 extension класс, настроенный в конфиге?
...
Рейтинг: 0 / 0
SoapExtension: не работает в коде прокси клиента
    #38506812
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixerfixer,
ну атрибут, пускай атрибуты, только не забывать что их снесет при авто генерации прокси
по вашей беде может это будет полезно
http://social.msdn.microsoft.com/Forums/en-US/1ba267b8-c08d-4c30-a1e1-792bac92fc87/soapextension-does-not-work-in-client-side?forum=netfxnetcom
...
Рейтинг: 0 / 0
SoapExtension: не работает в коде прокси клиента
    #38507129
mixerfixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степи,

Да, то что сносит при каждом update web reference это я строго помню :)

По ссылке - больше касается wcf, а у меня asmx вкус классический. Эх, попробую твой конфиг вариант и придется попытать удачи на technet ресурсах...так хотелось без индусов обойтись, а то начнутся советы в стиле кэпа.
...
Рейтинг: 0 / 0
SoapExtension: не работает в коде прокси клиента
    #38507186
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixerfixer, я с начало подумал что у вас два сервиса, один свой а другой в виде прокси, а у вас один, и как я понимаю с разных концов
вы парсите тело расширениями...
...
Рейтинг: 0 / 0
SoapExtension: не работает в коде прокси клиента
    #38507352
mixerfixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степи,

Именно так - у меня 1 Web Service и мне нужно хэндлить как вызовы моих методов так и мои вызовы методов сервиса поставщика.

При вызове поставщика:
- нахожу soap:body
- добавляю ему аттрибут id = new guid()
- формирую ЭЦП с использованием Iola на весь soap:body
- цепляю ЭЦП в header
- отправляю запрос поставщику.
...
Рейтинг: 0 / 0
SoapExtension: не работает в коде прокси клиента
    #38507615
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixerfixer,
я вчера интереса ради прогнал ваш пример, сам то уж давно это не делал - ну выше двойки
на четвертом вполне нормально, в атрибут заходит,( дальше не полез), а вы на какой версии прокси генерировали?
...
Рейтинг: 0 / 0
SoapExtension: не работает в коде прокси клиента
    #38508984
mixerfixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степи,

Спасибо что решил продолжить мучения со мной :) Конечно же я тоже решил укрепить свои устои мира - сделал минимальное консоль приложение со ссылкой на левую веб службу и тоже вошел в атрибут.

Вот посмотри wsdl с которой у меня проблема skydrive

Я работаю в VS2012 Ult, проект настроена на Framework 4. Но добавляю я эту wsdl через add service reference -> advanced -> add web reference - это тот самый framework 2 генератор прокси классов, когда еще была опция add web reference на уровне проекта.
...
Рейтинг: 0 / 0
SoapExtension: не работает в коде прокси клиента
    #38509035
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixerfixer,
взял вашу схему сгенерил прокси на 4 - захода нет
сгенерил проксси на 2 - заход есть
поменял в настройках 2 на 4 прокси перегенерился по 2 - заход есть
2012 ult
...
Рейтинг: 0 / 0
SoapExtension: не работает в коде прокси клиента
    #38509039
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

Код: 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.
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.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
#pragma warning disable 1591

namespace ConsoleApplication2.com.wsdl_analyzer {
    using System;
    using System.Web.Services;
    using System.Diagnostics;
    using System.Web.Services.Protocols;
    using System.Xml.Serialization;
    using System.ComponentModel;
    
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.17929")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name="BillingServiceImplServiceSoapBinding", Namespace="http://ws.gcvp.idsoftware.kz/")]
    public partial class BillingServiceImplService : System.Web.Services.Protocols.SoapHttpClientProtocol {
        
        private System.Threading.SendOrPostCallback findInfoOperationCompleted;
        
        private bool useDefaultCredentialsSetExplicitly;
        
        /// <remarks/>
        public BillingServiceImplService() {
            this.Url = global::ConsoleApplication2.Properties.Settings.Default.ConsoleApplication2_com_wsdl_analyzer_BillingServiceImplService;
            if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
                this.UseDefaultCredentials = true;
                this.useDefaultCredentialsSetExplicitly = false;
            }
            else {
                this.useDefaultCredentialsSetExplicitly = true;
            }
        }
        
        public new string Url {
            get {
                return base.Url;
            }
            set {
                if ((((this.IsLocalFileSystemWebService(base.Url) == true) 
                            && (this.useDefaultCredentialsSetExplicitly == false)) 
                            && (this.IsLocalFileSystemWebService(value) == false))) {
                    base.UseDefaultCredentials = false;
                }
                base.Url = value;
            }
        }
        
        public new bool UseDefaultCredentials {
            get {
                return base.UseDefaultCredentials;
            }
            set {
                base.UseDefaultCredentials = value;
                this.useDefaultCredentialsSetExplicitly = true;
            }
        }
        
        /// <remarks/>
        public event findInfoCompletedEventHandler findInfoCompleted;
        
        /// <remarks/>
         [CLTraceExtension]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://ws.gcvp.idsoftware.kz/", ResponseNamespace="http://ws.gcvp.idsoftware.kz/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        [return: System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public response findInfo([System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] request arg0) {
            object[] results = this.Invoke("findInfo", new object[] {
                        arg0});
            return ((response)(results[0]));
        }
        
        /// <remarks/>
        public void findInfoAsync(request arg0) {
            this.findInfoAsync(arg0, null);
        }
        
        /// <remarks/>
        public void findInfoAsync(request arg0, object userState) {
            if ((this.findInfoOperationCompleted == null)) {
                this.findInfoOperationCompleted = new System.Threading.SendOrPostCallback(this.OnfindInfoOperationCompleted);
            }
            this.InvokeAsync("findInfo", new object[] {
                        arg0}, this.findInfoOperationCompleted, userState);
        }
        
        private void OnfindInfoOperationCompleted(object arg) {
            if ((this.findInfoCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.findInfoCompleted(this, new findInfoCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        public new void CancelAsync(object userState) {
            base.CancelAsync(userState);
        }
        
        private bool IsLocalFileSystemWebService(string url) {
            if (((url == null) 
                        || (url == string.Empty))) {
                return false;
            }
            System.Uri wsUri = new System.Uri(url);
            if (((wsUri.Port >= 1024) 
                        && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
                return true;
            }
            return false;
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.gcvp.idsoftware.kz/")]
    public partial class request {
        
        private System.DateTime birthdateField;
        
        private string fatherNameField;
        
        private string firstNameField;
        
        private string iinField;
        
        private string lastNameField;
        
        private int periodField;
        
        private string requestNumberField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="date")]
        public System.DateTime birthdate {
            get {
                return this.birthdateField;
            }
            set {
                this.birthdateField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=true)]
        public string fatherName {
            get {
                return this.fatherNameField;
            }
            set {
                this.fatherNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string firstName {
            get {
                return this.firstNameField;
            }
            set {
                this.firstNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string iin {
            get {
                return this.iinField;
            }
            set {
                this.iinField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string lastName {
            get {
                return this.lastNameField;
            }
            set {
                this.lastNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public int period {
            get {
                return this.periodField;
            }
            set {
                this.periodField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string requestNumber {
            get {
                return this.requestNumberField;
            }
            set {
                this.requestNumberField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.gcvp.idsoftware.kz/")]
    public partial class organization {
        
        private string binField;
        
        private System.DateTime dateField;
        
        private string nameField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string bin {
            get {
                return this.binField;
            }
            set {
                this.binField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="date")]
        public System.DateTime date {
            get {
                return this.dateField;
            }
            set {
                this.dateField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string name {
            get {
                return this.nameField;
            }
            set {
                this.nameField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.gcvp.idsoftware.kz/")]
    public partial class response {
        
        private double amountField;
        
        private bool amountFieldSpecified;
        
        private organization[] paymentPlacesField;
        
        private request requestField;
        
        private responseCode responseCodeField;
        
        private bool responseCodeFieldSpecified;
        
        private System.DateTime responseDateField;
        
        private bool responseDateFieldSpecified;
        
        private string responseNumberField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public double amount {
            get {
                return this.amountField;
            }
            set {
                this.amountField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool amountSpecified {
            get {
                return this.amountFieldSpecified;
            }
            set {
                this.amountFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        [System.Xml.Serialization.XmlArrayItemAttribute("place", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public organization[] paymentPlaces {
            get {
                return this.paymentPlacesField;
            }
            set {
                this.paymentPlacesField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public request request {
            get {
                return this.requestField;
            }
            set {
                this.requestField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public responseCode responseCode {
            get {
                return this.responseCodeField;
            }
            set {
                this.responseCodeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool responseCodeSpecified {
            get {
                return this.responseCodeFieldSpecified;
            }
            set {
                this.responseCodeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public System.DateTime responseDate {
            get {
                return this.responseDateField;
            }
            set {
                this.responseDateField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool responseDateSpecified {
            get {
                return this.responseDateFieldSpecified;
            }
            set {
                this.responseDateFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public string responseNumber {
            get {
                return this.responseNumberField;
            }
            set {
                this.responseNumberField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.gcvp.idsoftware.kz/")]
    public enum responseCode {
        
        /// <remarks/>
        FOUND,
        
        /// <remarks/>
        IIN_NOT_FOUND,
        
        /// <remarks/>
        ERROR1,
        
        /// <remarks/>
        ERROR2,
        
        /// <remarks/>
        ACCESS_DENIED,
        
        /// <remarks/>
        SIGNATURE_NOT_VALID,
        
        /// <remarks/>
        MISSING_INPUT_PARAMETERS,
        
        /// <remarks/>
        WRONG_PERIOD,
        
        /// <remarks/>
        DUPLICATE_REQUEST_NUMBER,
        
        /// <remarks/>
        FIO_BD_INCORRECT,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.17929")]
    public delegate void findInfoCompletedEventHandler(object sender, findInfoCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.0.30319.17929")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class findInfoCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal findInfoCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public response Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((response)(this.results[0]));
            }
        }
    }
}

#pragma warning restore 1591


...
Рейтинг: 0 / 0
SoapExtension: не работает в коде прокси клиента
    #38509116
mixerfixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степи,

Хм, слушай а как вы генерите прокси на 2 и 4? Сами запускаете exe генерилку или "генерить на 2" это add service ref -> advanced -> add web ref, а "генерить на 4" - это add service ref?

В приложенном вами коде GeneratedCodeAttribute("System.Web.Services", "4.0.30319.17929") означает что это было сгенерено 4 framework, ведь правильно?
...
Рейтинг: 0 / 0
SoapExtension: не работает в коде прокси клиента
    #38509125
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mixerfixer,
При первоначальной генерации на 4, у меня картина как у вас.
я удалил прокси, перевел проект на 2 и по новой сгенерил прокси.
Заход появился, я подумал, а не перевести ли проект на 4, с уже с генереным прокси,
при переводе автогенерация сама включилась и перегенерила под себя на 4, я так понимаю уже без обращения
к хосту с схемой.
что интересно, простынки получились разные ( автогенерация на 4 - авторенерация 2->4), я уж не стал выяснять где и почему ( заходит ну и ладно)
ну заход я отловил в самом объекте расширения, так как там на методе стоит атрибут пролета при отладке)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / SoapExtension: не работает в коде прокси клиента
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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