ApplyWebConfigModifications Çiftliği çalışmıyor

oy
1

Yani, WebConfigModifications koleksiyonunu kullanarak web.config güncelleyen bir Web Uygulaması özelliği dağıtmak çalışıyorum. Ben yapılandırma elemanları web config eklenmez deneyin neyi tüm bu yüzden kodunda çok eminim girmek sorunlar ama hiçbir konuda dahil bunu yapma hakkında bilgi bir sürü vardır. Bu gelişme, tek sunucu ortamında çalışıyor ancak çiftliğinde güncelleme etmez.

Herhangi bir hata, hiçbir olay mesajları .... hiçbir şey güncelleme olmayacak neden dönük hiçbir günlük bilgileri:

SPWebConfigModification appSettingModification = yeni SPWebConfigModification ();
appSettingModification.Name = ekleme [@key = \ Anahtar \ ] [değeri @ = \ değer \ ];
appSettingModification.Path = yapılandırma / appSettings;
appSettingModification.Owner = Sahip;
appSettingModification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
appSettingModification.Value = __appSettingResource;

Eğer (removeModification)
{
app.WebConfigModifications.Remove (appSettingModification);
}
Başka
{
app.WebConfigModifications.Add (appSettingModification);
}
App.Update ();
app.Farm.Services.GetValue <SPWebService> () ApplyWebConfigModifications (.);

==============================

DÜZENLE

Ben ApplyWebModifications yöntemi yansıtmak için drax tarafından bir öneri dayanarak bu eklemek istedim. Bu yöntem Microsoft.SharePoint montajında ​​Microsoft.SharePoint.Administration ad alanında olduğu SPWebService üzerindedir.

Bu yöntemi kullanarak konulardan biri tüm web.config dosyaları hiçbir değişiklik aslında uygulanıyor olsa bile çiftlikte güncellenir olmasıdır. Bu web yapılandırma güncellemek niyetinde olmasa bile uygulama havuzları geri dönüşümlü neden olur. bu neden oluyor Yansıma gösterir ve çok can sıkıcı.

yöntem içinde kısa foreach döngü:

foreach (this.WebApplications olarak SPWebApplication uygulaması)
{
application.ApplyWebConfigModifications ();
}

Bu web uygulamaların her döngü ve bir aradığını İÇ web uygulama nesneleri ApplyWebConfigModifications yöntem. Onlar sadece bu yöntem kamuoyuna edersek Güncellemelerimizin etkilenmez Web uygulamalarıyla ilgili uygulama havuzu geri dönüşüm etkilemeden tek tek yöntemi çağırmak mümkün olacaktır. Sadece söylüyorum'

Oluştur 09/12/2008 saat 16:53
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
0

Sorun) yerine ApplyWebCOnfigModifications (sizin çağrıda Propably geçerli:

app.Farm.Services.GetValue () ApplyWebConfigModifications (.);

kullanın:

app.Farm.Servers.GetValue <SPWebService> () ApplyWebConfigModifications (.);

İkinci kod aslında web.config dosyalarını güncellenmesinden sorumludur hizmeti çağırır.

Sidenote: Bu kod aslında sunucu / çiftlikte yüklü tüm web uygulamaları tüm WebConfig dosyaları açacak :) ama sadece doğru olanları güncelleyecektir. Bu yöntemi taramak için reflektörü kullanır Eğer foreach döngüsü kullanmanın bazı güzel örneğini göreceksiniz :)

Cevap 09/12/2008 saat 17:30
kaynak kullanıcı

oy
0

Bu sorun dinleme cihazı. Bence.

SPWebService.ApplyWebConfigModifications()

public void ApplyWebConfigModifications()
{
  if (base.Farm.TimerService.Instances.Count > 1)
  {
    SPWebConfigJobDefinition definition = new SPWebConfigJobDefinition(this);
    definition.Schedule = new SPOneTimeSchedule(DateTime.Now);
    try
    {
      definition.Update();
      return;
    }
    catch (Exception exception)
    {
      if (exception is SPDuplicateObjectException)
      {
        throw new InvalidOperationException(SPResource.GetString("WebconfigModificationAlreadyRunning", new object[0]), exception);
      }
      throw;
    }
  }
  string strMessage = string.Empty;
  **foreach (SPWebApplication application in this.WebApplications)**
  {
    ULS.SendTraceTag(0x38386866, ULSCat.msoulscat_WSS_Topology, ULSTraceLevel.Medium, "Apply web config modifications to web app {0} ", new object[] { application.GetResponseUri(SPUrlZone.Default).ToString() });
    try
    {
      application.ApplyWebConfigModifications();
Cevap 25/01/2011 saat 01:44
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more