Эта проблема заняла у меня и нашего ИТ-отдела в нашей компании много часов, чтобы точно определить.

Проблема появляется только на Windows Server 2008, Windows 7 и Windows 8. На Windows XP или Windows Server 2003 у нас нет проблем.

У нас есть программа, которую мы разработали внутри нашей компании. Программа работает нормально, и проблема не является конкретной для этой программы.

Программа использует localhost для связи с другими программами, запущенными на компьютере, с помощью веб-сервисов. Проблема заключается в том, что эта связь не работает, если программа находится в домашней папке пользователя.

Потратив много часов на выяснение причин этого, мы недавно поняли, что проблема исчезает, если у пользователя есть доступ ко всем родительским папкам в UNC-пути к исполняемому файлу.

Таким образом, если домашний диск смонтирован в H: = \SomeServer \hdrive $ \SomeUser и пользователь не имеет доступа к \SomeServer \hdrive $, тогда наша программа получает ошибки TCP, и веб-службы не работают.

Если пользователь затем получает только разрешение "Содержимое папки списка" на этот путь, то веб-службы работают.

В противном случае программа работает нормально. Мы проверили, что все dll-файлы успешно связаны и никаких других ошибок не происходит.

Похоже, это то, что делает ОС. кто-нибудь знает, почему это произошло?

1 ответ1

0

В Windows 7 и выше определенные папки защищены по умолчанию. Насколько я понимаю, это по соображениям безопасности. то есть. Программе A становится труднее тайно изменить dll, используемую программой B.

Часто я обнаруживаю, что если я щелкну правой кнопкой мыши на нужной программе и запустлю "от имени администратора", она будет работать нормально. Я не уверен, что это сработает в вашем случае.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .