2014-01-23 3 views
0

Хостинг служб WCF через хост exe в Windows 8.1 Я получаю связанную с AppContainer ошибку. Я не могу найти хорошую документацию по методам в верхней части трассировки стека. Здесь хватается за соломинку.Доступ запрещен (System.ComponentModel.Win32Exception) При вызове службы WCF

«System.ComponentModel.Win32Exception (0x80004005): доступ запрещен \ г \ п \ г \ Nserver трассировки стека: \ г \ п
в System.ServiceModel.Channels.AppContainerInfo.GetCurrentProcessToken() \ г \ п
в System.ServiceModel.Channels.AppContainerInfo.RunningInAppContainer() \ г \ п
в System.ServiceModel.Channels.AppContainerInfo.get_IsRunningInAppContainer() \ г \ п
в System.ServiceModel.Channels.PipeSharedMemory.BuildPipeName (String pipeGuid) \ r \ n
at System.ServiceModel.Channels.PipeSharedMemory.get_PipeName() \ r \ n
at System.ServiceMode l.Channels.PipeSharedMemory.GetPipeName (AppContainerInfo AppInfo) \ г \ п
на System.ServiceModel.Channels.PipeConnectionInitiator.GetPipeName (Uri Uri, IPipeTransportFactorySettings transportFactorySettings) \ г \ п
в System.ServiceModel.Channels.NamedPipeConnectionPoolRegistry.NamedPipeConnectionPool .GetPoolKey (EndpointAddress адрес, Ури через) \ г \ п
на System.ServiceModel.Channels.CommunicationPool`2.TakeConnection (EndpointAddress адрес, с помощью Uri, TimeSpan тайм-аут, TKey & ключ) \ г \ п
в системе. ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection (TimeSpan timeout) \ r \ n
в System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen (TimeSpan timeout) \ Г \ п
в System.ServiceModel.Channels.CommunicationObject.Open (TimeSpan тайм-аута) \ г \ п
в System.ServiceModel.Channels.ServiceChannel.OnOpen (тайм-аут TimeSpan) \ г \ п
в System.ServiceModel .Channels.CommunicationObject.Open (TimeSpan тайм-аут) \ г \ п
на System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call (ServiceChannel канала, TimeSpan тайм-аута) \ г \ п
на System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce (TimeSpan тайм-аута, CallOnceManager каскада) \ г \ п
в System.ServiceModel.Channels.ServiceChannel.Call (String, Boolean действия, ProxyOperationRuntime односторонней Operat иона, объект [] модули, Object [] выходы, TimeSpan тайм-аута) \ г \ п
в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (IMethodCallMessage methodCall, операция ProxyOperationRuntime) \ г \ п
в System.ServiceModel.Channels .ServiceChannelProxy.Invoke (сообщение с сообщением) \ r \ n \ r \ n Исключение, указанное в [0]: \ r \ n в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg, IMessage retMsg) \ r \ п
на System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData & msgData, тип Int32) \ г \ п
на IAuthenticationService.AuthTempTokens (TokenSet жетоны, CAMSSystem SystemID, String AccountId, String IPaddress, String UniqueID) \ r \ n
в login_Default.AuthenticateAndRedirect() в c: \ Source \ RiverTam \ Source \ Systems \ Web \ PMI \ PMI \ Default.aspx.cs: строка 167 "

ответ

0

Итак, сайт IIS был настроен для олицетворения и у этого пользователя не было прав! Пытался пользователю с помощью Process Monitor.Неудивительно, что удаление следующей строки позволяет работать как мой пользователь, администратор, имеет права просто отлично.

<system.web>  
    <identity impersonate="true" username="user" password="password" /> 
</system.web> 
0

Похоже, вы пытаетесь использовать именованный канал и вы не можете использовать именованные каналы в приложении на основе WinRT.

+0

Да, мы используем привязку именованного канала, но приложение является простым языком, который по какой-то причине работает в контексте AppContainer? Хост не является приложением WinRT. Это меня озадачило. – Montane

+0

Хм, это может быть просто * проверка *, если он работает в AppContainer. Если мы просто перейдем только к сообщению об ошибке, я бы сказал, что пользователь работает, так как не имеет прав на открытие канала. Какой адрес вы пытаетесь открыть? Какие права имеет пользователь, с которым вы работаете? Можете ли вы попытаться запустить администратора как можно быстрее? –

+0

Итак, полный стек ... Запуск кодированного теста пользовательского интерфейса в VS 2013 против локально размещенного веб-сайта, который вызывает WCF, размещенный в EXE по адресу net.pipe: // localhost/CAMS/AuthenticationService. Я попытался запустить EXE в качестве администратора без эффекта. Веб-сайт работает на сервере разработки ASP.NET, поэтому я предполагаю, что он работает под моей личностью, и я являюсь администратором на компьютере. – Montane

Смежные вопросы