От: | Cadet | ||
Дата: | 08.07.10 20:23 | ||
Оценка: |
// Об этом интерфейсе знает клиент, что где-то на сервисе живет объект, его реализующий
public interface IBusinessObject
{
BusinessData GetBusinessData();
}
[Serializable]
public class BusinessData
{
}
// Объект данного класса хостится сервисом и должен быть дернут через интерфейс со стороны клиента
public class BusinessObject : MarshalByRefObject, IBusinessObject
{
public BusinessData GetBusinessData()
{
return new BusinessData();
}
}
public class HostService : ServiceBase
{
protected override void OnStart(string[] args)
{
RemotingConfiguration.Configure(Assembly.GetExecutingAssembly().Location + ".config", false);
base.OnStart(args);
}
public static void Main(string[] args)
{
ServiceBase.Run(new HostService());
}
}
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.runtime.remoting>
<application>
<service>
<wellknown mode="SingleCall" type="Service.BusinessObject, Service" objectUri="BusinessObject" />
</service>
<channels>
<channel ref="tcp" port="9000" />
</channels>
</application>
</system.runtime.remoting>
</configuration>
class Program
{
static void Main(string[] args)
{
var obj = (IBusinessObject)Activator.GetObject(typeof(IBusinessObject), "tcp://localhost:9000/BusinessObject");
var bd = obj.GetBusinessData();
}
}
Грешным делом подумал сначала, что рядом с клиентом надо положить и сборку с сервисом (что вобще говоря неприемлимо), но пробный эксперимент результата не поменял . Что я упускаю?System.BadImageFormatException: Could not load file or assembly 'Interfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Была сделана попытка загрузить программу, имеющую неверный формат.