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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Странное отличие, отличия при компиляции и запуске вручную 
:(
    Опции темы
starostin
Дата 26.5.2011, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

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



Откуда не возьмись появилось странное поведение службы. Запускаеться сервис хостовым приложением. Когда я его запускаю в вижуал студии, всё проходит гладко, все контракты отвечают как надо, всё путём. Но если я запускаю хостовое приложение, которое поднимает сервис, вручную(то бишь два раза щёлкаю мышкой по экзешнику smile ), то браузер мне говорит что отключена публикация метаданных(при запуске из vs напоминаю всё нормально), контракты соответственно не отвечают, wcftestclient говорит ошибку но привести её не могу, потому что там усё в нераспозноваемой кодировке.
Что я мог упустить? Странности ситуации добавляет то, что пару дней назад, до добавления одного из контрактов всё работало на ура, и его удаление из проекта результатов не даёт.
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
jonie
Дата 26.5.2011, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



под кем запускается (юзер) сервис и клиент? Какая авторизация стоит?  Часом не Windows ?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
starostin
Дата 26.5.2011, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

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



Авторизацию не включал, оба запускаются с правами админа. Если бы была проблема с эти, то и раньше бы не работало, а сервис уже почти неделю работал исправно. Мне кажется, что как то не правильно регистрирую хоста
Код

namespace SertificateOutServiceHost
{
    class Program
    {
        static void Main(string[] args)
        {SertificateSvc s = SertificateSvc.Service;
              try
              {
                  s.Start();
                  Console.WriteLine("Nice service is start :)");
              }
              catch
              {
                  Console.WriteLine("Fucking service dont start");
              }

              while (Console.ReadLine().ToLower() != "exit") { }
              s.Stop();
              return;
}}}

namespace SertificateOutService
{

    public sealed class SertificateSvc : ServiceBase
    {
        private static SertificateSvc _WcfService;
        private ServiceHost _SvcHost;
        public static SertificateSvc Service
        {
            get
            {
                _WcfService = _WcfService ?? new SertificateSvc();
                return _WcfService;
            }
        }
        public SertificateSvc()
        {
            Uri baseAddress = new Uri("http://localhost:8137/Sertificate");
            // Регистрация сервиса и его метаданных
            _SvcHost = new ServiceHost(typeof(Service1),baseAddress);
        }
        public void Start()
        {
            _SvcHost.Open();
        }
        public void Stop()
        {
            _SvcHost.Close();
        }
        private void InitializeComponent()
        {
            this.ServiceName = "SertificateSvc";
        }
    }
}

PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
jonie
Дата 26.5.2011, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



очень плохая идея делать в Start сервиса такие тяжелые операции как открытие SvcHost-а : _SvcHost.Open();

netstat -an показывает активность на 8137 порту? 
Прописан ли app.config для сервиса правильно?
"Под админом обе" - у вас пользователь называется "MachineName\Админ"  и под ним запускаетесь?*
"Я ничего не прописывал с т.з. аутентификации"  - вовсе не означает что указанный вами binding по умолчанию не имеет такой защиты. wsHttpBinding  например как я помню использует по умолчанию как раз Windows аутентификацию (и перед установкой связи посылаются  доп. пакеты для установки безопасного соединения как раз и отвечающие за установку типа утентификации (Kerberos\Windows) и контекста безопасности)..... хотя тут я могу ошибаться  - надо читать msdn.

*) "Права админа" это "сферический конь" в известном месте ...

Это сообщение отредактировал(а) jonie - 26.5.2011, 14:28


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
starostin
Дата 27.5.2011, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

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



Ну если плохо так хост открывать, то расскажите пожалуйста мне как правильно. На порте состояние listening.
Конфиг примитивный
Код

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
  <system.web>
    <compilation debug="true" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="SertificateOutService.Service1" behaviorConfiguration="SertificateBehavior">
        <host>
          <baseAddresses>
            <add baseAddress = "http://localhost:8137/Sertificate" />
          </baseAddresses>
        </host>
         <endpoint address ="" binding="basicHttpBinding" contract="SertificateOutService.IService1">
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
        <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SertificateBehavior">
          <serviceMetadata httpGetEnabled="True" policyVersion="Policy12" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

я просто поставил галочку запускать с админскими правами, вряд ли дело в аутентификации, так как ошибка даже когда запускаешь на одной и той же машине и клиент и сервер. Что то с метаданыыми, то ли конфиг не находит, то ли не тот используется...
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
starostin
Дата 27.5.2011, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

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



Вот чё я заметил, убрал галку в свойвствах "Запустить узел службы WCF при отладке...", тогда и при отладке все те же проблемы, что и при ручном запуске, что за галяк такой? Нужно ли его вабще вручную запускать?
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
starostin
Дата 27.5.2011, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

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



Теперь я уверен, что дело не в автризации и правах, я добавил публикацию метаданных и бехейвер в код программы, что позволило браузеру получить эти данные. Значит, почему то сервис не может прочитать свой кофиг. Что бы это могло значить?
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
jonie
Дата 27.5.2011, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



starostin, а вы конфиг показывали нам какого проекта? того что называется myservice.exe.config надеюсь, а не app.config из проекта "my_wcf_library.dll" ?

в myservice.exe.config-е должно быть объявление нормальное параметров...
Цитата(starostin @  27.5.2011,  08:40 Найти цитируемый пост)
Ну если плохо так хост открывать, то расскажите пожалуйста мне как правильно

дело в том что на старт сервиса дается ограниченное количество времени. операция открытия wcf по моим замерам долгая (куча либ поднимается, открываются соединения). Я бы предпочел делать ее в отдельном потоке (поток создавать в OnStart как раз).

Код

_SvcHost = new ServiceHost(typeof(Service1) /*,baseAddress*/);  //base адрес тут не нужен - вы его и так в конфиге задаете



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
starostin
Дата 30.5.2011, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

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



хм, я сильно озадачен. В моём решение, только wcflibrary-проект имеет конфиг,  у второго консольного проекта конфига нет. Конфиг дллки в дебаге по содержанию совпадает с app.config в проекте

Я думаю яснее всё будет если я дам посмотреть сам проект:

Это сообщение отредактировал(а) starostin - 30.5.2011, 10:13

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  SertificateOutService.rar 135,77 Kb
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
starostin
Дата 30.5.2011, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

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



Чё то я повнимательней поглядел на ошибку выдаваемую wcftestclient:

ЋиЁЎЄ : ЌҐ г¤ Ґвбп Ї®«гзЁвм ¬Ґв ¤ ­­лҐ Ё§ http://localhost:8137/Sertificate/mex …б«Ё г ў б Ґбвм ¤®бвгЇ Є б«г¦ЎҐ Windows ® Communication Foundation, гЎҐ¤ЁвҐбм, зв® ўЄ«о祭  ЇгЎ«ЁЄ жЁп ¬Ґв ¤ ­­ле Ї® гЄ § ­­®¬г  ¤аҐбг. ‘Їа ў®з­лҐ ᢥ¤Ґ­Ёп Ї® ўЄ«о祭Ёо ЇгЎ«ЁЄ жЁЁ ¬Ґв ¤ ­­ле б¬. ў ¤®Єг¬Ґ­в жЁЁ MSDN Ї®  ¤аҐбг http://go.microsoft.com/fwlink/?LinkId=65455.ЋиЁЎЄ  б«г¦Ўл ®Ў¬Ґ­  ¬Ґв ¤ ­­л¬Ё WS-Metadata Exchange    €¤Ґ­вЁдЁЄ в®а URI: http://localhost:8137/Sertificate/mex    ЊҐв ¤ ­­лҐ ᮤҐа¦ в ­Ґа §аҐиЁ¬го ббл«Єг: "http://localhost:8137/Sertificate/mex".    ’ЁЇ ᮤҐа¦Ё¬®Ј® application/soap+xml; charset=utf-8 ­Ґ Ї®¤¤Ґа¦Ёў Ґвбп б«г¦Ў®© http://localhost:8137/Sertificate/mex. ќв® ¬®¦Ґв Ўлвм ўл§ў ­® ­Ґб®®вўҐвбвўЁҐ¬ ЇаЁўп§®Є Є«ЁҐ­в  Ё б«г¦Ўл.    “¤ «Ґ­­л© бҐаўҐа ў®§ўа вЁ« ®иЁЎЄг: (415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'..ЋиЁЎЄ  HTTP GET    URI: http://localhost:8137/Sertificate/mex    ‚®§­ЁЄ«  ®иЁЎЄ  ЇаЁ § Јаг§ЄҐ "http://localhost:8137/Sertificate/mex".    ‘Ў®© § Їа®б  б б®бв®п­ЁҐ¬ HTTP 400: Bad Request.

Паходу чё то с кодировкой сталось, но как и ранее странно, ведь я к кодировкам не прикосался

Это сообщение отредактировал(а) starostin - 30.5.2011, 12:59
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
starostin
Дата 1.6.2011, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

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



Такс, я решил забить на конфиг и прописать все настройки в коде, нашёл на одном бложке как должен выглядить код, но не знаю как отключить app.config, что бы сервис не лез в него за настройками. Что для этого надо сделать?
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
starostin
Дата 8.6.2011, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

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



Ну в общем решил я проблему сменив язык вижуал студии, а так же сменив версию soap в конфиге клиента
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




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


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

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