Process.Start внутри метода WCF - PullRequest
1 голос
/ 25 мая 2011

Когда я запускаю этот код через тестовый клиент WCF с адресом localhost, он работает.

string batch = "C:/Users/Administrator/Desktop/Batch/tvPower.lnk";
Process.Start(batch);
return "done";

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

Но когда я попытался запустить этот код через WCF Test Client с размещенным ip, он не работает и возвращает следующую ошибку.

"Не удалось вызвать службу. Возможные причины: служба отключена или недоступна; конфигурация на стороне клиента не соответствует прокси-серверу; существующий прокси-сервер недействителен. Дополнительные сведения см. В трассировке стека. восстановить, запустив новый прокси-сервер, восстановив конфигурацию по умолчанию или обновив службу. "

Следующий стек,

Трассировка стека сервера: в System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood (Message ответ, ошибка MessageFault, строка действие, версия MessageVersion, FaultConverter FailConverter) в System.ServiceModel.Channels.ServiceChannel.HandleReply (ProxyOperationRuntime операция, ProxyRpc & rpc) в System.ServiceModel.Channels.ServiceChannel.Call (String действие, логическое одностороннее, Операция ProxyOperationRuntime, Object [] ins, Object [] outs, TimeSpan тайм-аут) в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (IMethodCallMessage methodCall, ProxyOperationRuntime операция) в System.ServiceModel.Channels.ServiceChannelProxy.Invoke (Шеззаде сообщение)

Исключение переброшено в [0]: в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (Шеззаде reqMsg, IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData & msgData, тип Int32) в Ix10Service.A1On () в Ix10ServiceClient.A1On ()

Может кто-нибудь указать мне правильное направление, как я могу заставить это работать?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 28 февраля 2017

Убедитесь, что удостоверение, под которым работает служба, имеет правильные разрешения на выполнение Process.Start и доступ к C: / Users / Administrator / Desktop / Batch /.Если возможно, войдите в систему как этот пользователь на компьютере и попробуйте, или просто посмотрите, какие разрешения необходимы, и предоставьте этому пользователю доступ.Если вы размещаете его в IIS, перейдите в это веб-приложение, просмотрите пул приложений, в котором оно выполняется, а затем перейдите к дополнительным настройкам -> Идентификация.

0 голосов
/ 25 мая 2011

Вероятно, это конфигурация вашего клиента - это не имеет никакого отношения к тому, что делает служба.

Проверьте файл конфигурации вашего клиента и убедитесь, что он указывает тот же адрес, привязки и контракт, что и у службы..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...