Laden...

Forenbeiträge von DaFenix Ingesamt 5 Beiträge

06.11.2008 - 09:55 Uhr

..ich weiß zwar nicht ob es dir noch hilft, aber soweit mir bekannt heißt das immer gleich. Also unter "Application" sprichst du auf einem deutschen BS die Quelle "Anwendungen" an und auf einem englischen "Application". So ist es zumindet unter Windows XP Professional.

Gruß
DaFenix

22.04.2008 - 16:56 Uhr

Okay, klingt aufwändiger.. danke für die gute Erläuterung.👍

Grüße,
DaFenix

21.04.2008 - 13:45 Uhr

Aus .NET Applikationsserver/Isolierte Dienste
..Ein wichtiges Feature fehlt ++momentan ++noch:Isolierte Ausführung und Konfiguration von DienstenDie einzelnen Dienste laufen derzeit noch nicht isoliert voneinander. Alle Assemblies werden direkt aus dem Anwendungsverzeichnis in die Standard-Anwendungsdomäne des Host-Prozesses geladen. Das macht Schwierigkeiten, wenn verschiedene Versionen des selben Dienstes gleichzeitig betrieben werden sollen. Da man die Standard-Anwendungsdomäne nicht entladen kann, können so im laufenden Betrieb keine Aktualisierungen gefahren werden. Außerdem teilen sich alle Dienste die selbe App.config...

Hallo Rainbird,

wie ist die Herangehensweise um einzelne Dienste während des Betriebes zu aktualisieren bzw. "parallel" zum schon vorhandenen Dienst einen neuen auf dem Applicationserver zu deployen?

Grüße DaFenix

12.04.2008 - 18:05 Uhr

Danke für die Hinweise!

@DaFenix: Das ist mir durch die Lappen gegangen. Füge einfach folgenden Code in den ChangeStockDialog ein:

  
/// <summary>  
/// Wird aufgerufen, wenn der Dialog geladen wird.  
/// </summary>  
/// <param name="sender"></param>  
/// <param name="e"></param>  
private void ChangeStockDialog_Load(object sender, EventArgs e)  
{  
// Versuchen, eine Sperre auf das Produkt zu bekommen  
LockingInfo lockInfo = ApplicationServer.AcquireLock("Stocks", _result.StockID.ToString());  
  
// Wenn die Sperre nicht zugeteilt wurde ...  
if (!lockInfo.Success)  
{  
// Warnmeldung anzeigen  
MessageBox.Show(lockInfo.Message, "Rainbird´s n-Tier Example", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);  
  
// Dialog schließen  
Close();  
}  
}  
  

Hallo Rainbird,

dein Code löst das Problem leider nicht ganz, da wenn der Dialog geschlossen wird das Lock stehen bleibt. Habe mir erlaubt das ganze ein wenig abzuändern. Wen es interessiert, hier ist der Code:

Das LockInfo Objekt in der Klasse bekannt machen.


// Referenz auf den ggf. gesperrten Datensatz
private LockingInfo lockInfo = null;

Im Closing Ereignis des ChangeStocks Dialogs folgendes einfügen:


/// <summary>
/// Entfernt Datensatzlock, sofern vorhanden
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ChangeStockDialog_FormClosing(object sender, FormClosingEventArgs e)
{
if (lockInfo != null)
{
// Falls Lock vorhanden..
if (lockInfo.Success)
{
// Lock entfernen
ApplicationServer.ReleaseLock(lockInfo.LockID);
}
}
}

12.04.2008 - 12:46 Uhr

Hallo Rainbird,

Super und funktioniert wie gewohnt einwandfrei! 😁
Was mir aufgefallen ist:
Ein Aufruf des Dialoges "Bestandsänderung" lockt den aktuellen DS nicht, womit unterschiedliche User quasi gleichzeitig den Bestand ändern können.

Nochmals danke für dieses Super Beispiel.