У меня есть приложение (.Net 4.5.1), которое часто запускается с общих сетевых ресурсов (например, \\server\someshare\application.exe).

К сожалению, это не всегда работает, если я не добавлю строку <loadFromRemoteSources enabled="true"/> в файл конфигурации приложения.

Документация msdn гласит:

В .NET Framework 4.5 сборки на общих сетевых ресурсах по умолчанию выполняются с полным доверием; Вам не нужно включать элемент.

Таким образом, проблема заключается в том, что сервер не находится в "local network" .

Некоторое время я искал, пытаясь выяснить, как сервер классифицируется как "локальная сеть", но не смог найти ничего убедительного. Некоторые сайты говорят, что я должен добавить сервер к "доверенным сайтам" в настройках Интернета, но это не помогло, когда я его попробовал (и также кажется странным добавить его туда, поскольку обычно для него требуется префикс https://).

Еще одна непонятная вещь в документации msdn:

Если для параметра enabled не задано значение true, исключение выдается при следующих условиях:
[...]
* Загружаемая сборка не из зоны MyComputer.

Итак, вкратце: каковы требования к серверу в local netwwork? Это что-то, что настроено на сервере, клиенте или домене?

(Сервер и клиент находятся в одном домене, и пользователь вошел в систему с учетной записью домена)

1 ответ1

0

Я думаю, что все зависит от метода доступа, т.е. если клиент запускает ваше приложение через общий сетевой ресурс, например

\\ сервер \ someshare \ application.exe

тогда это рассматривается как локальная сеть.

С другой стороны, если к вашему приложению обращаются через HTTP, то к нему обращаются через Интернет, например, http://server/path/application.exe. Все ссылки в документации на зоны, включая зону "Мой компьютер", относятся к веб-доступу.

Обратите внимание, что если ваше приложение копируется в локальную сетевую папку из Интернета, то оно помечается Windows как веб-приложение, и, следовательно, вы можете столкнуться с этим случаем. Вот прямая цитата из MSDN:

Если приложение было скопировано из Интернета, оно помечается Windows как веб-приложение, даже если оно находится на локальном компьютере. Вы можете изменить это обозначение, изменив свойства файла, или вы можете использовать элемент, чтобы предоставить сборке полное доверие

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