Принимающий.Объект NET remoting в IIS10 на windows10
Я работаю над старым приложением .net.
Который реализован с.система удаленного взаимодействия. NET и размещенных в IIS.
URL-адрес удаленного объекта .net выглядит следующим образом: "http://serverName:12345/ClassNameOFRemoteObject.rem"
Я пытаюсь воспроизвести его в своей локальной системе для отладки, но не могу добиться успеха.
Поэтому я создал здесь три проекта
Библиотека интерфейсов (ClassLibrary1)
пространство имен ClassLibrary1
{ публичный интерфейс IMyObj
{ строка возвращает что-то();
}
}
Проект "TestingRemoting" имеет удаленный объект, который реализован выше интерфейса.
пространство имен TestingRemoting
{ public class myObj : MarshalByRefObject, IMyObj
{ общественного строка returnSomething()
{
Remotingconfiguration, настраивающему.Настроить("веб.конфиг",ложные);
возвращение "привет";
}
}
}
Создал виртуальный каталог в IIS10 с именем “ACD_BusinessLogic” и указал на каталог “C:\myRemoteObject\bin-там, где мое тестовое управление.dll и ClassLibrary1.dll проживает
Добавлен файл web.config в “C:\myRemoteObject”
&ЛТ;система.во время выполнения.удаленное взаимодействие и GT;
<применение>
<каналы>
<channel ref="http" >
<сервис>
<wellknown mode="Singleton" type="TestingRemoting.myObj, TestingRemoting"
objectUri="myObj.rem" />
После этого, если я попытался просмотреть его, в браузере появилось сообщение “System.Runtime.Удаленное взаимодействие.RemotingException: запрошенная служба не найдена“ для URL-адреса “http://localhost/ACD_BusinessLogic/myObj.rem".Даже добавить веб-ссылку не удалось решить.
"Тестовый" клиентский проект
static void Main(string[] args)
{
Строке filename =
домен приложений.CurrentDomain.SetupInformation.Конфигурационный файл;
Remotingconfiguration, настраивающему.Configure(имя файла,false);
IMyObj mgr = (IMyObj)RemotingHelper.CreateProxy(typeof(IMyObj));
строка sd = mgr.returnSomething();
}
RemotingHelper.в CS
частный статический IDictionary _wellKnownTypes;
публичный статический объект CreateProxy(тип type)
{
if (_wellKnownTypes == null) InitTypeCache();
WellKnownClientTypeEntry энтр =
(WellKnownClientTypeEntry)_wellKnownTypes[тип];
if (entr == null)
{
throw new RemotingException("тип не найден!");
}
возвратный активатор.Функция getobject(энтр.ObjectType, entr.ObjectUrl);
}
public static void InitTypeCache()
{
Типы хэш-таблиц = новая хэш-таблица();
по каждому элементу (WellKnownClientTypeEntry энтр в
Remotingconfiguration, настраивающему.GetRegisteredWellKnownClientTypes())
{
если (антр.ObjectType == null)
{
throw new RemotingException("сконфигурированный тип не может быть" +
"находиться. Пожалуйста, проверьте орфографию в вашем конфигурационном файле.");
}
типы.Добавить(антр.ObjectType, entr);
}
_wellKnownTypes = типы;
}
Приложение Клиента.конфиг
&ЛТ;система.во время выполнения.удаленное взаимодействие и GT;
<применение>
<клиент>
<!-- Эта запись работает только с классом RemotingHelper -->
<хорошо известный тип="ClassLibrary1.IMyObj, ClassLibrary1"
URL-адрес="http://localhost/ACD_BusinessLogic/myObj.rem" /&ГТ;
Затем я попытался запустить клиентское приложение, я получаю исключение времени выполнения “необработанное исключение типа " System.Runtime.Удаленное взаимодействие.RemotingException' произошло в mscorlib.dll. Дополнительная информация: System.Runtime.Удаленное взаимодействие.RemotingException: запрошенная служба не найдена” в строке sd = mgr.returnSomething();
Пожалуйста, помогите мне.
Что я уже пробовал:
Я попробовал изменить конфигурационные файлы с помощью различных комбинаций.