Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WS Dynamic URL 
:(
    Опции темы
Monomachus
  Дата 31.3.2008, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 24.12.2005

Репутация: нет
Всего: нет



Прет всем! 
В общем проблема заключается в том что у меня 2 модуля: DАL, UI. Теперь в  DАL я создал динамическую вэб референс (ссылку). Сразу у мня в app.config DAL заносится поле с  этой ссылкой что-нить типа 
Код

 <P5_PLA.DAL.Properties.Settings>
            <setting name="P5_PLA_DAL_WsPLA_WsPLA" serializeAs="String">
                <value>http://192.168.7.177:8080/WsPLA/services/WsPLA</value>
            </setting>
            <setting name="SRC" serializeAs="String">
                <value>inp</value>
            </setting>
        </P5_PLA.DAL.Properties.Settings>

 теперь я чтоб потом можно было менять эту ссылку переписываю эти секции в UI app.config
теперь когда я в UI app.config меняю значение поля 
Код

<setting name="P5_PLA_DAL_WsPLA_WsPLA" serializeAs="String">
                <value>http://192.168.7.177:8080/WsPLA/services/WsPLA</value>
            </setting>

то все должно было бы быть хорошо но вот какая проблема если я меняю значение в UI app.config или app.config DAL (не то которое я изначально ввел в Properties Solution Explorera), то у меня следующая проблема возникает. Мне пишут что 
Код

public WSAgencesAccessor()
        {
            ws = new P5_PLA.DAL.WsPLA.WsPLA();
           // kogda stavim siuda BreakPoint vidim 4to ws.Url = tomu 4to stoit u nas v UI app.config
        }
        #endregion

        #region Get
        public AgencesDataSet.T_AgencesDataTable GetAgences()
        {
            string responce = ws.WsPLAGetAllAgences001(DataUtils.SessionId, Properties.Settings.Default.SRC, DataUtils.SessionIp);
            // responce tut ravno null
            AgencesDataSet ds = new AgencesDataSet();
            new DataUtils().ManageXMLResponceGet(responce, ds);
            
            return ds.T_Agences;
        }


responce равно нуллу хотя ВС работают через Эклипс в WDSL проверял. Теперь если я меняю значение на то которое я указал в Properties Solution Explorera то никакой ошибки не возникает и все работает. Казалось бы если это Dynamic WS  то менятся оно должно само (т.е. считывать с UI app.configа), но в Reference.cs вставляется именно адрес изначальной ссылки. 
Код

 /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.1433")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name="WsPLAHttpBinding", Namespace="http://localhost:8080/WsPLA/services/WsPLA")]
    public partial class WsPLA : System.Web.Services.Protocols.SoapHttpClientProtocol {
        
        private System.Threading.SendOrPostCallback WsPLAGetUsers001OperationCompleted;
        
        private System.Threading.SendOrPostCallback WsPLAGetAllProjets001OperationCompleted;
        
        private System.Threading.SendOrPostCallback WsPLAAjoutPlanif001OperationCompleted;
        
        private System.Threading.SendOrPostCallback WsPLADeletePlanif001OperationCompleted;
        
        private System.Threading.SendOrPostCallback WsPLAAjoutProjet001OperationCompleted;
        
        private System.Threading.SendOrPostCallback WsPLAGetProjetById001OperationCompleted;
        
        private System.Threading.SendOrPostCallback WsPLAGetPlanifs001OperationCompleted;
        
        private System.Threading.SendOrPostCallback WsPLAGetAllAgences001OperationCompleted;
        
        private System.Threading.SendOrPostCallback WsPLAGetAgenceById001OperationCompleted;
        
        private bool useDefaultCredentialsSetExplicitly;
        
        /// <remarks/>
        public WsPLA() {
            this.Url = global::P5_PLA.DAL.Properties.Settings.Default.P5_PLA_DAL_WsPLA_WsPLA;
            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 WsPLAGetUsers001CompletedEventHandler WsPLAGetUsers001Completed;
        
        /// <remarks/>
        public event WsPLAGetAllProjets001CompletedEventHandler WsPLAGetAllProjets001Completed;
        
        /// <remarks/>
        public event WsPLAAjoutPlanif001CompletedEventHandler WsPLAAjoutPlanif001Completed;
        
        /// <remarks/>
        public event WsPLADeletePlanif001CompletedEventHandler WsPLADeletePlanif001Completed;
        
        /// <remarks/>
        public event WsPLAAjoutProjet001CompletedEventHandler WsPLAAjoutProjet001Completed;
        
        /// <remarks/>
        public event WsPLAGetProjetById001CompletedEventHandler WsPLAGetProjetById001Completed;
        
        /// <remarks/>
        public event WsPLAGetPlanifs001CompletedEventHandler WsPLAGetPlanifs001Completed;
        
        /// <remarks/>
        public event WsPLAGetAllAgences001CompletedEventHandler WsPLAGetAllAgences001Completed;
        
        /// <remarks/>
        public event WsPLAGetAgenceById001CompletedEventHandler WsPLAGetAgenceById001Completed;
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="http://localhost:8080/WsPLA/services/WsPLA", ResponseNamespace="http://localhost:8080/WsPLA/services/WsPLA", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        [return: System.Xml.Serialization.XmlElementAttribute("out", IsNullable=true)]
        public string WsPLAGetUsers001([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string in0, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string in1, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string in2, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string in3) {
            object[] results = this.Invoke("WsPLAGetUsers001", new object[] {
                        in0,
                        in1,
                        in2,
                        in3});
            return ((string)(results[0]));
        }

...

Опять же если я меняю значение в Properties Solution Explorera на то что UI app.config то все красиво. Теперь вопрос где моя ошибка и как сделать так чтоб можно было менять URL WS прямо из <AppName.exe>.config?





PM MAIL   Вверх
mr.DUDA
Дата 1.4.2008, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Что-то я не совсем понял, надо чтобы урл к веб-сервису в прокси классе подставлялся автоматически из конфига сервера? Или как?


--------------------
user posted image
PM MAIL WWW   Вверх
Monomachus
  Дата 1.4.2008, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 24.12.2005

Репутация: нет
Всего: нет



Мда. Просто сейчас я если меняю УРЛ (не тот что в Properties),  то мне выдает ArgumentNullException то есть весь ответ равен нуллу
Код

 string responce = ws.WsPLAGetAllAgences001(DataUtils.SessionId, Properties.Settings.Default.SRC, DataUtils.SessionIp);
            // responce tut ravno null

и потом когда я его использую естественно выходит Exception, теперь у меня не возникает проблем когда УРЛ из конфига совпадает с тем что в Reference.cs (ws.Url всегда тот что в конфиге). Соответственно я хочу чтобы проблем не возникало, + чтоб сказали где ошибка чтоб на те же грабли не наступать. Т.е. при смене урл в конфиге он менялся и в Reference.cs.
PM MAIL   Вверх
mr.DUDA
Дата 1.4.2008, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



AFAIK, нужно руками прописывать Url после создания объекта прокси. Могу ошибаться, но так по крайней мере делали на конторе где я когда-то работал. smile 


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1231 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.