lexluther Posted May 17, 2007 Report Share Posted May 17, 2007 Добрый день, Я изучаю технологию NET Remoting. Руководствуясь инструкциями на множестве форумов, в MSDN'е и на rsdn.ru, я создал тестовый сервер и клиент (в который раз …). Но при запуске клиента мне выдается следующее сообщение: See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box.************** Exception Text **************System.Runtime.Remoting.RemotingException: Requested Service not foundServer stack trace: at System.Runtime.Remoting.Channels.BinaryServerFormatterSink.ProcessMessage(IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream requestStream, IMessage& responseMsg, ITransportHeaders& responseHeaders, Stream& responseStream)Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at MyCoolClass.addthemall(Int32 first, Int32 second) at WindowsClient.MyForm.CalculateLinkLabel_LinkClicked(Object sender, LinkLabelLinkClickedEventArgs e) in C:\Documents and Settings\Administrator\My Documents\ServerApplication\WindowsClient\MyForm.cs:line 33 at ... Код сервера следующий: public class MyCoolClass : MarshalByRefObject{ public void addthemall(int first, int second) { MessageBox.Show((first + second).ToString() + "\n" + Assembly.GetExecutingAssembly().Location + "\n" + Thread.CurrentThread.CurrentUICulture.ToString() + "\n" + Assembly.GetExecutingAssembly().FullName); }}class Program{ static void Main(string[] args) { ChannelServices.RegisterChannel(new TcpServerChannel(8082), false); RemotingConfiguration.ApplicationName = "MyCoolApp"; RemotingConfiguration.RegisterWellKnownServiceType(typeof(MyCoolClass), "MyCoolClass", WellKnownObjectMode.SingleCall); System.Console.Write("Processing connections ..."); Console.ReadLine(); }} Код клиента следующий: namespace WindowsClient{public partial class MyForm : Form{ public MyForm() { InitializeComponent(); } private void CalculateLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { ChannelServices.RegisterChannel(new TcpClientChannel(), false); RemotingConfiguration.RegisterWellKnownClientType(typeof(MyCoolClass), "tcp://localhost:8082/MyCoolApp/MyCoolClass.rem"); MyCoolClass MCC = new MyCoolClass(); MCC.addthemall(Int32.Parse(this.NumTextBox1.Text),Int32.Parse(this.NumTextBox2.Text)); }}} До этого пытался заставить работать все с конфигами, а также при помощи кучи других способов (HTTP/TCP). НЕ РАБОТАЕТ. Даже на разных компьютерах запускал, все бестолку. В случае же если я настраиваю ремоутинг при помощи конфига то у меня просто вызывается локальный объект :D. Помогите пожалуйста понять в чем проблема. Что я делаю не так? Весь код тестового проекта находится по следующему пути: http://artiomivanov.com/ServerApplication.rar У меня и первый и второй фреймворки, + по умолчанию комплект идущий с 2005-м VS. Операционка Windows XP с отключенным фаерволом. Параметры безопасности фреймворка вообще не трогал, а работаю исключительно под админом. Там же точно должна быть какая то тонкость, типа как когда я создавал COM объект на .NET то оказалось что для нормальной работы ему нужен strong name, а об этом никто нормально ничего нигде не писал. Я сам случайно догадался. PS: И вообще, есть ли где учебники по .NET, не типо по синтаксису c#, А ПО .NET???! По MSIL коду, NET Remoting'у, и другим интересным темам. Интересуют интернет и бумажные варианты. С уважением. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.