Странное поведение в клиенте веб-службы .NET, когда он не работает от имени локального администратора - PullRequest
1 голос
/ 12 ноября 2008

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

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

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

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

Ответы [ 2 ]

1 голос
/ 12 ноября 2008

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

1 голос
/ 12 ноября 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

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

...