Прет всем! В общем проблема заключается в том что у меня 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?
|