| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Добрый день! 
		
		
		
		
		
		
		
		
			Может кто сталкивался с подобной проблемой. AOS Application и Клиент - установлены на одной машине. Пытаюсь создать экземпляр класса SysMailer в методе run в классе наследованом от RunBaseBatch X++: public void run() { SysMailer mailer; ; mailer = new SysMailer(); mailer.SMTPRelayServer("*****",25, "******", "*****", true); mailer.quickSend("***@***.**", "***@***.**", "test", "test"); } Запускаем второго клиента. Запускаем на втором клиенте пакетный обработчик. При исполнении задания валится ошибка Сбой запроса на разрешение типа "InteropPermission". (S)\Classes\InteropPermission\demand (S)\Classes\COM\new (S)\Classes\SysMailer\new - line 1 (S)\Classes\NAT_T2MailSender\run - line 7 - здесь mailer = new SysMailer(); (S)\Classes\BatchRun\runJobStatic - line 63 (S)\Classes\BatchRun\runJob - line 55 (S)\Classes\BatchRun\do - line 54 (C)\Forms\BatchRun\Methods\doBatch - line 18 (C)\Forms\BatchRun\Methods\setStart - line 8 (C)\Forms\BatchRun\Methods\setRunning - line 7 (S)\Classes\BatchRun\run - line 26 (C)\Classes\BatchRun\main - line 10 Если же запустить данный код просто в Job: X++: static void Job_test_SysMailer(Args _args) { SysMailer mailer; ; mailer = new SysMailer(); mailer.SMTPRelayServer("*****",25, "******", "*****", true); mailer.quickSend("***@***.**", "***@***.**", "test", "test"); } Заранее спасибо !  
		Последний раз редактировалось pvito; 31.10.2007 в 14:06.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от pvito
			 
 
			Пытаюсь создать экземпляр класса SysMailer  в методе run в классе наследованом от RunBaseBatch. При исполнении задания валится ошибка 
		
	Сбой запроса на разрешение типа "InteropPermission". (S)\Classes\InteropPermission\demand (S)\Classes\COM\new (S)\Classes\SysMailer\new - line 1 (S)\Classes\NAT_T2MailSender\run - line 7 - здесь mailer = new SysMailer(); Если же запустить данный код просто в Job то все выполняется нормально. X++: InteropPermission comPermission = new InteropPermission(InteropKind::ComInterop); SysMailer mailer; ; comPermission.assert(); mailer = new SysMailer(); // ... работа с SysMailer... CodeAccessPermission::revertAssert(); // опционально, но явный вызов - это теперь тоже Best Practices Последний раз редактировалось gl00mie; 31.10.2007 в 18:39.  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо огромное за помощь !!!  
		
		
		
		
		
		
		
	 
		 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Метод new в в SysMailer делает assert в начале, так что его как бы можно вызывать уже не делая это в своем коде. Только они забыли про параметр по-умолчанию. X++: void new(COM c = new COM('CDO.Message')) { InteropPermission permission = new InteropPermission(InteropKind::ComInterop); ; permission.assert(); //пропущено } Должно быть что-то вроде: X++: void new(COM c = null) { InteropPermission permission = new InteropPermission(InteropKind::ComInterop); ; permission.assert(); if (prmIsDefault(c)) c = new COM('CDO.Message'); //пропущено }  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: coolibin (1). | |