Тест производительности "работает на моей машине", но не на сервере сборки.Чего не хватает? - PullRequest
0 голосов
/ 28 февраля 2011

Я настроил интеграционный тест, который имитирует производственное использование службы WCF.

Код запускается под именем тестовой учетной записи пользователя в нашем активном каталоге.Тестовый пользователь является членом группы администраторов на сервере сборки (работает TeamCity 5.1.3).

Служба WCF в этом случае размещается в консольном приложении и запускается тестом следующим образом:

private const string _uri = "net.tcp://127.0.0.1:8090/bpaic";
private const string _tns = "tstdaily";    

...

_wcfProcessHandle = Process.Start(new ProcessStartInfo {
        FileName = _serviceRunnerPath, 
        Arguments = "\"{0}\" \"{1}\"".FormatWith( _uri, _tns ),
        UseShellExecute =  false,
        Domain = Config.Domain,
        UserName = Config.UserName,
        Password = Config.UserPassword.ToSecureString()
});

Вызов File.Exists гарантирует наличие исполняемого файла, определенного _serviceRunnerPath.

Ошибка проявляется в журнале сервера сборки следующим образом:

Тест (ы) не пройден.System.InvalidOperationException: не удалось обработать запрос, поскольку процесс (4332) завершился.в System.Diagnostics.Process.GetProcessHandle (доступ Int32, Boolean throwIfExited) в System.Diagnostics.Process.Kill ()
в BondPriceAndInterestCalculator.IntegrationTests.Performance.MimicFMSTest.KillWcf \ агент службы:\ работа \ 40cccfdaa4a1ba8 \ BondPriceAndInterestCalculator.IntegrationTests \ Performance \ MimicFMSTest.cs: строка 74 в BondPriceAndInterestCalculator.IntegrationTests.Performance.MimicFMSTest.Calculat1000PricesAnd1000OutstandingInterestsInParalell () в D: \ Teamcity Agents \ Server Agent 1 \ работа \ 40cccfdaa4a1ba8 \ BondPriceAndInterestCalculator.IntegrationTests \ Performance \MimicFMSTest.cs: строка 69 ------- Stdout: ------- Необработанное исключение в удаленном домене приложения: System.ServiceModel.EndpointNotFoundException: Не удалось подключиться к net.tcp: //127.0.0.1: 8090 /bpaic.Попытка подключения продолжалась в течение промежутка времени 00: 00: 01.0673145.Код ошибки TCP 10061: не удалось установить соединение, потому что целевая машина активно отказала ему в 127.0.0.1:8090.---> System.Net.Sockets.SocketException: не удалось установить соединение, поскольку целевая машина активно отказала ему в 127.0.0.1:8090 в System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, SocketAddress socketAddress) в System.Net.Sockets.Socket.Connect (EndPoint remoteEP) в System.ServiceModel.Channels.SocketConnectionInitiator.Connect (Uri uri, TimeSpan timeout) --- Конец внутренней трассировки стека исключений ---

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

На моей машине все работает нормально (слышал это раньше? ;-)), но служба WCF не получаетзапущен на сервере сборки.

Чего не хватает?

Ответы [ 2 ]

0 голосов
/ 21 марта 2011

Вы опубликовали сервис на сервере сборки на порту 8090? Он говорит, что не может найти конечную точку при попытке подключения.

0 голосов
/ 01 марта 2011

Вы пытались перейти в папку d: \ TeamCity Agents \ Server Agent 1 \ work \ 40cccfdaa4a1ba8 и запустить свои тесты из этого места? Вы должны войти в систему с той же учетной записью, которая используется службой агента сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...