Я следую примеру Orleans в этом примере, вместо того, чтобы запускать как силос, так и клиент в том же домене приложения, они проходят через так, что оба могут запускаться независимо. Я внес изменения, как было предложено. Я изменил IGrain1.cs, чтобы принять строку в качестве параметра
Task<string> SayHello(string greetings);
Модифицирован файл graphics1.cs для реализации кода следующим образом
private string text = "Hello World!";
public Task<string> SayHello(string greetings)
{
var oldText = text;
text = greetings;
return Task.FromResult(oldText);
}
Когда я запускаю силос, он не запускает силос с этой ошибкой
"TypeLoadException: метод" SayHello "в типе" GrainCollection1.Grain1 "из сборки" GrainCollection1... "
как интерфейс, так и определение соответствия зерну. Что-то простое здесь отсутствует?
Взгляните на c:\Microsoft Codename Orleans SDK v0.9\SDK\LocalSilo\Applications. CodeGen создает папку для каждого проекта Orleans. Когда локальный силос запускается, инициализатор просматривает этот каталог для сборок.
Попробуйте удалить папки в. /Applications и перестроить свое решение. Вы должны увидеть, что папка проекта воссоздана с восстановленными зернами и интерфейсами DLL.
В DevTestServerConfiguration.xml измените Tracing/DefaultTraceLevel на "Предупреждение" на "Информация". Когда вы запустите InitSilo, вы увидите, что ищет силос, и ошибки, которые он бросает. Это указывало на папку с силосом SDK.
Изменение: вам также может понадобиться удалить папки в папке \SDK\Binaries. Обязательно перестройте весь проект сразу после удаления.