Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с System.Runtime.Remoting.Channels.HTTP, mono, компиляция на линуксе 
:(
    Опции темы
tigrik
Дата 12.7.2006, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 5.9.2004

Репутация: нет
Всего: 3



при попытке компилировать код на линуксе с моно выходит следующая ошибка: 

"The type or namespace name `HTTP' does not exist in the namespace `System.Runtime.Remoting.Channels'. Are you missing an assembly reference?"


Код

using System;
using System.IO;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.HTTP;
namespace Server
{
   public class ServiceClass : MarshalByRefObject {
      public void AddMessage (String msg)
  {
         Console.WriteLine (msg);
  }
}
public class ServerClass
{
  public static void Main ()
  {
    HTTPChannel c = new HTTPChannel (1095);     ChannelServices.RegisterChannel (c);
    RemotingServices.RegisterWellKnownType ("Server","Server.ServiceClass","ServiceClass",WellKnownObjectMode.Singleton);
    Console.WriteLine ("Server ON at 1095");
     Console.WriteLine ("Press enter to stop the server...");
     Console.ReadLine ();
  }
 }
}


  

Это сообщение отредактировал(а) tigrik - 12.7.2006, 19:46
PM MAIL   Вверх
Kefir
Дата 12.7.2006, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 2
Всего: 87



Этот класс реализован в System.Runtime.Remoting.dll. Прикрути его к проге и посмотри что тогда будет.  smile  
PM MAIL WWW Skype   Вверх
tigrik
Дата 12.7.2006, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 5.9.2004

Репутация: нет
Всего: 3



а как прикрутить?

я попробовала с:

mcs -r:System.Runtime.Remoting.dll Server.cs

не работает :-( 
PM MAIL   Вверх
Kefir
Дата 12.7.2006, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 2
Всего: 87



а что значит 
Цитата(tigrik @  12.7.2006,  12:22 Найти цитируемый пост)
не работает :-(  

как неработает? 
PM MAIL WWW Skype   Вверх
tigrik
Дата 12.7.2006, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 5.9.2004

Репутация: нет
Всего: 3




думаю что длл он находит, т.к. если делаешь ошибку в имени то он говорит что не нашел

а так :
mcs Server.cs

или так:

mcs -r:System.Runtime.Remoting.dll Server.cs

 выдает одинаковую ошибку  
PM MAIL   Вверх
arilou
Дата 12.7.2006, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



tigrik, мне так кацца что ты используешь Mono, или я не прав? 


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
arilou
Дата 12.7.2006, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Там нету System.Runtime.Remoting.Channels.HTTP 


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
mr.DUDA
Дата 13.7.2006, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(arilou @  12.7.2006,  22:04 Найти цитируемый пост)
tigrik, мне так кацца что ты используешь Mono, или я не прав? 


Цитата(tigrik @  12.7.2006,  19:44 Найти цитируемый пост)
при попытке компилировать код на линуксе с моно выходит следующая ошибка: 

 smile  


--------------------
user posted image
PM MAIL WWW   Вверх
tigrik
Дата 13.7.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 5.9.2004

Репутация: нет
Всего: 3



да, моно...

мне нужно просто вызвать функцию от удалённого объекта
подскажите как это можно сделать с моно чтобы на линуксе шло
(клиент и сервер)

а то не один пример что я нашла невозможно закомпилировать :-( 
PM MAIL   Вверх
arilou
Дата 13.7.2006, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



tigrik, переходи с Remoting на web-services, и тогда все заработает. 

Цитата(mr.DUDA @  13.7.2006,  09:33 Найти цитируемый пост)
Цитата(arilou @  12.7.2006,  22:04 )
tigrik, мне так кацца что ты используешь Mono, или я не прав? 
Цитата(tigrik @  12.7.2006,  19:44 )
при попытке компилировать код на линуксе с моно выходит следующая ошибка: 

Е-мое, в отпуске глаз замылился  smile Я по имени компилятора догадался  smile  


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
tigrik
Дата 15.7.2006, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 5.9.2004

Репутация: нет
Всего: 3



ок, пример я домучила - теперь компилируется

сервер:

Код

using System;
using System.IO;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.Http;
//using System.Runtime.Remoting;
namespace NetSearchServer
{

   public class ServiceClass : MarshalByRefObject {
      public void AddMessage (String msg)
  {
         Console.WriteLine (msg);
  }
}
public class ServerClass
{
  public static void RunServer ()
  {
    HttpChannel c = new HttpChannel (1095);   
    System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel (c);
    System.Type type=typeof(ServiceClass);
    System.Runtime.Remoting.RemotingConfiguration.RegisterWellKnownServiceType(type,"ServiceClass",WellKnownObjectMode.Singleton);
    Console.WriteLine ("Server ON at 1095");
    Console.WriteLine ("Press enter to stop the server...");
    Console.ReadLine ();
  }
 }
}



клиент:

Код

using System;
using System.IO;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.Http;
using NetSearchServer;


namespace NetSearchClient
{
    class NetClient
    {
        public static void RunClient()
        {
                ServiceClass obj = (ServiceClass) Activator.GetObject(typeof(ServiceClass),
                        "http://localhost:1095/ServiceClass");
            obj.AddMessage("Hello from Client");
  }
    }
    
    
}


arilou
Цитата(arilou @  13.7.2006,  19:15 Найти цитируемый пост)
tigrik, переходи с Remoting на web-services, и тогда все заработает. 


а в чем конкретно недостатки Remoting?
и, если не затруднит, хотелось бы примерчик с web-services  

Это сообщение отредактировал(а) tigrik - 15.7.2006, 23:01
PM MAIL   Вверх
mr.DUDA
Дата 16.7.2006, 03:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Пару замечаний:

1) Если по-честному, весь вышеприведённый код мог быть заменён на 2-3 строчки на сервере и клиенте, плюс .config-файлы с настройками.
2) Web-сервис в .NET представляет собой обычный класс, помеченный атрибутом [WebService] (или же унаследованный от класса WebService), и содержащий хотя бы один метод, помеченный атрибутом [WebMethod]. Для того, чтобы клиенту можно было вызвать веб-метод, нужно опубликовать веб-сервис на любом сервере (хотя бы на localhost) и с помощью утилиты wsdl.exe сгенерировать прокси-класс. Далее, клиент просто создаёт экземпляр прокси-класса, заполняет свойство Url и вызывает метод веб-сервиса. Как вариант, прокси-класс можно сгенерировать командой "Add Web Reference" в IDE Visual Studio или #Develop. 


--------------------
user posted image
PM MAIL WWW   Вверх
tigrik
Дата 16.7.2006, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 5.9.2004

Репутация: нет
Всего: 3



ok, попробую.

допустим:

сервер:
Код


public class WebService : System.Web.Services.WebService
{
    [WebMethod]
    public void AddMessage (String msg)
   {
         Console.WriteLine (msg);
   }
}


вопрос: что именно кладется на сервер? насколько я поняла чтобы сгенерировать прохи надо иметь WSDL файл..
кто его генерирует?

  
PM MAIL   Вверх
mr.DUDA
Дата 16.7.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(tigrik @  16.7.2006,  14:05 Найти цитируемый пост)
вопрос: что именно кладется на сервер? насколько я поняла чтобы сгенерировать прохи надо иметь WSDL файл..

На сервер кладём .asmx-файл и скомпилированную DLL в папку bin.
WSDL-описание автоматом генерируется сервером, если зайти по линку на .asmx-файл и добавить в запрос:   ?wsdl 


--------------------
user posted image
PM MAIL WWW   Вверх
tigrik
Дата 18.7.2006, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 5.9.2004

Репутация: нет
Всего: 3



ок, wsdl  у меня сгенерировался, 
только с очень большим трудом после долгой и упорной настройки апаче

каким веб-сервером лучше для этого пользоваться? Он должен обязательно работать на линуксе...

 
PM MAIL   Вверх
mr.DUDA
Дата 18.7.2006, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Можно апач, можно XSP:
Цитата
XSP is a standalone web server written in C# that can be used to run your ASP.NET applications with minimal effort. XSP works under both the Mono and Microsoft runtimes. The code is available from our download page (look for XSP web server) or from the Anonymous SVN repository (module name: xsp). 

The easiest way to start XSP is to run it from within the root directory of your application. It will serve requests on port 8080. Place additional assemblies in the bin directory. Other XSP options can be set on the command line, such as the application directory and the port to listen on. 

XSP comes with a set of pages, controls and web services that you can use to test the server and see what ASP.NET looks like. 

For example, once you install XSP, you can try some samples like this: 

 $ cd /usr/lib/xsp/test
 $ xsp
 Listening on port: 8080
 Listening on address: 0.0.0.0
 Root directory: /home/cvs/mcs/class/corlib/Microsoft.Win32
 Hit Return to stop the server.

You can now browse to http://localhost:8080 and see various sample programs


http://www.mono-project.com/ASP.NET 


--------------------
user posted image
PM MAIL WWW   Вверх
tigrik
Дата 18.7.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 5.9.2004

Репутация: нет
Всего: 3



mr.DUDA, большое спасибо за помощь :-)
сейчас попробую XSP  
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1094 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.