Dosyalar (Attachment) nesnesi dosya sınırının belirlenmesi
Varsayılan olarak 4 Mb olan dosya yükleme boyutu sınırı uygulama genelinde olacak şekilde revize edilebilir ya da süreç içerisindeki nesne özelinde kod ile kontrol ederek sınırlandırılabilir.
1- eBA uygulamasında dosya boyutu sınırının ayarlanması
eBA uygulamasının kurulu olduğu IIS üzerinde eba.net ve eba.net.dm isimli application tanımları için işlem sağlanmalıdır.
Ek olarak eBA uygulamasının kurulu olduğu dizinde common klasörü altında yer alan 'eBAConfigurationEditor.exe' içerisinden tanımlama yapılmalıdır.
1.1- IIS ayarlarının yapılandırılması
eba.net ve eba.net.dm uygulama tanımlarının yapılandırılması yönelik iki farklı kısım bulunmaktadır. Bahsedilen 'system.webServer/security/requestFiltering' ve 'system.web/httpRuntime' kırılımdaki ilgili tanımlar iki uygulama için de gerçekleştirilmelidir.
Uygulama tanımına tıklandığında 'Features View' sekmesinde 'Configuration Editor' çift tıklanarak sayfanın yukarısındaki seçimler arasında "system.web/httpRuntime" seçilir. maxRequestLength değeri için ise kilobayt (kb) cinsinden değer girilmelidir.
Uygulama tanımına tıklandığında 'Features View' sekmesinde 'Configuration Editor' çift tıklanarak sayfanın yukarısındaki seçimler arasında "system.webServer/security/requestFiltering" seçilir. requestLimits kırılımı altındaki maxAllowedContentLength değeri için ise bayt (b) cinsinden değer girilmelidir.
1.2- eBA Config ayarının yapılandırılması
eBA uygulamasının kurulu olduğu dizinde common klasörü altında yer alan 'eBAConfigurationEditor.exe' uygulamasında Advanced sekmesinde 'config > web' kırılımı altında MaximumAttachmentSize değeri yoksa en alt satıra girilerek eklenir ve değeri megabayt (mb) cinsinden girilmelidir.
Yapılan değişiklik sonrası eBA uygulamasına ait windows servisi restart edilmelidir.
2- Projedeki nesne özelinde dosya boyutu sınırının kontrolü
eBA uygulamasında imkan tanınan dosya boyutu sınırından daha düşük olacak şekilde, istenilen süreçlerdeki istenilen dosyalar (attachment) nesnesinde dosya boyutu kontrol edilerek işlem sağlanabilir.
Aşağıdaki örnek projede kategori bazlı toplam dosya boyutunu hesaplayan fonksiyon bulunmaktadır. Örnekteki gibi dosyalar (attachment) nesnesinin onAfterAttach event'ında kullanılabilir ya da dosya boyutu bilgisi bir textBox'ta barındırılıp formun validasyonunda uyarı verilmesi sağlanabilir.
using eBAPI.Connection;
using eBAPI.DocumentManagement;
//nesnenin onafterattach eventinde formdaki örn. txtDosyaBoyutu isimli metin kutusuna MB cinsinden değer yazılır.
public void Dosyalar1_OnAfterAttach(object sender, eBAAttachmentFileEventArgs e)
{
txtDosyaBoyutu.Text = (dosyaBoyutu() / (1024 * 1024)).ToString();
}
//ilgili method
public long dosyaBoyutu()
{
eBAConnection eBACon = CreateServerConnection();
eBACon.Open();
try
{
FileSystem fs = eBACon.FileSystem;
DMFile fileExcel = fs.GetFile("workflow/Proje1/Form/" + id.ToString() + ".wfd");
DMCategoryContentCollection SourceAttachments = fileExcel.GetAttachments("default");
DMFileContent fl = SourceAttachments[0];
return fl.Size;
}
finally
{
eBACon.Close();
}
}
//formun validasyon kod tarafında
if (txtDosyaBoyutu > 10)
summary.AddMessage("Dosya Boyutu 10MB den Büyük Olamaz.");