Вы получаете ошибку, когда СОЗДАЕТЕ процедуру или ВЫ ИСПОЛНИТЕ ее?
Если вы получите его при выполнении, то могут возникнуть проблемы с разрешениями. Поскольку в более поздних версиях sql-сервера вызов xp_cmdshell
плотно заблокирован и по умолчанию не включен в конфигурации наземной области, я мог видеть потенциал для этого.
Как вы звоните в SP? Если вы используете динамический SQL, знайте, что он выполняется с привилегиями вызывающего, а не создателя SP.
Вам нужно добавить префикс SP к мастеру, как в master.dbo.xp_cmdshell
?
Вы пробовали EXECUTE AS
либо при создании SP, либо при выполнении SP?
Кроме того, по моему опыту, ошибки транспортного уровня иногда связаны не с проблемой сервера, а с проблемой, когда клиент кэширует свой объект соединения после того, как сервер его отбросил (что делает объект соединения недействительным). Учитывая, что вы, вероятно, запускаете это в течение короткого времени после первоначального подключения, это не похоже, что это является точной проблемой, но может возникнуть проблема с прокси / брандмауэром / сетевым фильтром, которая отбрасывает пакеты из-за обнаружение определенных ключевых слов в пакетах? Я знаю, что это длинный выстрел, но я должен был спросить ...