Странное поведение в клиенте веб-службы .NET, когда НЕ запущен как локальный администратор

Мы столкнулись с очень странной ситуацией, когда развернули приложение на сайте заказчика. Это приложение реализовано как служба с использованием C# в .NET 3. Приложение взаимодействует с веб-службой, написанной с использованием gSOAP. В нашем приложении .NET классы, обертывающие веб-службу, были созданы путем выполнения «Добавить службу» в Visual Studio и ссылки на WSDL. Связь осуществляется по протоколу HTTPS, но с использованием порта 35000.

Мы видим, что когда наше приложение запускается под учетной записью локального администратора, все работает хорошо. Однако, когда наше приложение запускается под любой другой учетной записью, включая «Локальную системную учетную запись» и даже учетную запись пользователя с правами сетевого администратора, время вызова метода веб-службы иногда истекает. В других случаях они преуспевают, но через очень, очень долгое время, например. 100 секунд вместо менее 1 секунды, как ожидалось.

Этот клиент использует коммутаторы Cisco в своей сети.

Мы не сталкивались с таким поведением на других сайтах. Мы будем очень признательны за любые идеи или предложения.


person Community    schedule 11.11.2008    source источник
comment
В какой операционной системе работает код? Это служба Windows или отдельное приложение? в какой каталог он установлен.   -  person Aaron Fischer    schedule 12.11.2008


Ответы (2)


Есть ли у клиента правила BI для аппаратного обеспечения брандмауэра? (Я хватаюсь за соломинку, но мы получили похожее поведение от одного из наших клиентов, который использовал один из наших сервисов несколько лет назад, потому что они включили некоторые странные правила BI в брандмауэре.)

person John Rudy    schedule 11.11.2008

Любые сообщения журнала событий о тайм-аутах, исключениях и т. д.?

Является ли приложение службой Windows? Используете ли вы RunAs для запуска в другом пользовательском контексте? Требуется ли взаимодействие с рабочим столом или есть какие-либо ссылки на System.Windows.Forms?

@ Комментарий 1: служба Windows, веб-служба, служба WCF?

Включите аудит безопасности как для локальных, так и для удаленных компьютеров на предмет ресурсов, которые служба может использовать.

Другое дело, добавить ведение журнала уровня отладки, как это... (извините за псевдо-VB)

Sub OnStart(args())
 LogToFile("Starting Service, processing arguments")
 'process args'
 LogToFile("ArgsProcessed calling main worker method")
 'call main worker method'
End OnStart

Sub LogToFile(message as String)
 If (AppConfigKeys[debugLogging] = True) Then
   'writes "DateTime.Now.ToString() & "-" & message" to a text file log' 
 End If
End Sub

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

person StingyJack    schedule 11.11.2008
comment
Как я писал в исходном сообщении, приложение является сервисом. Мы использовали свойства службы, чтобы изменить учетную запись безопасности, под которой работают службы. Мы не получили никаких специальных указаний от .NET API относительно того, почему время ожидания методов истекло, кроме того факта, что они это сделали. - person ; 12.11.2008