D
dragooon
Could anyone shed some light on this? We have an asp.net 2.0 application
that works together with .net remoting. The asp.net application calls a .net
remoting server through tcp channel from a separate thread. The basic
workflow is like the following:
Internet user send a request
-> asp.net application creates a new thread
-> the thread then calls .net remoting server to retrieve some
data
This works fine if the IIS server and the .net remoting server are loated on
the same machine (or different machine but we do not run it through the new
created thread). However, when the IIS and the .net remoting server are
located on two different machines, this throws an exception:
System.Security.Authentication.InvalidCredentialException: The server has
rejected the client credentials. ---> System.ComponentModel.Win32Exception:
The logon attempt failed\r\n --- End of inner exception stack
trace ---\r\n\r\nServer stack trace: \r\n at
System.Net.Security.NegoState.ProcessAuthentication(LazyAsyncResult
lazyResult)\r\n at
System.Net.Security.NegotiateStream.AuthenticateAsClient(NetworkCredential
credential, String targetName, ProtectionLevel requiredProtectionLevel,
TokenImpersonationLevel allowedImpersonationLevel)\r\n at
System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.CreateAuthenticatedStream(Stream
netStream, String machinePortAndSid)\r\n at
System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.CreateSocketHandler(Socket
socket, SocketCache socketCache, String machinePortAndSid)\r\n at
System.Runtime.Remoting.Channels.SocketCache.CreateSocketHandler(Socket
socket, String machineAndPort)\r\n at
System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSo
cket(EndPoint ipEndPoint)\r\n at
System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket()\r\n at
System.Runtime.Remoting.Channels.SocketCache.GetSocket(String
machinePortAndSid, Boolean openNew)\r\n at
System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestWithRetry(IMessage
msg, ITransportHeaders requestHeaders, Stream requestStream)\r\n at
System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage
msg, ITransportHeaders requestHeaders, Stream requestStream,
ITransportHeaders& responseHeaders, Stream& responseStream)\r\n at
System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage
msg)\r\n\r\nException rethrown at [0]: \r\n at
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg)\r\n at
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
msgData, Int32 type)\r\n
Does this an internal problem from .net framework? Any help will be
appreciated!
that works together with .net remoting. The asp.net application calls a .net
remoting server through tcp channel from a separate thread. The basic
workflow is like the following:
Internet user send a request
-> asp.net application creates a new thread
-> the thread then calls .net remoting server to retrieve some
data
This works fine if the IIS server and the .net remoting server are loated on
the same machine (or different machine but we do not run it through the new
created thread). However, when the IIS and the .net remoting server are
located on two different machines, this throws an exception:
System.Security.Authentication.InvalidCredentialException: The server has
rejected the client credentials. ---> System.ComponentModel.Win32Exception:
The logon attempt failed\r\n --- End of inner exception stack
trace ---\r\n\r\nServer stack trace: \r\n at
System.Net.Security.NegoState.ProcessAuthentication(LazyAsyncResult
lazyResult)\r\n at
System.Net.Security.NegotiateStream.AuthenticateAsClient(NetworkCredential
credential, String targetName, ProtectionLevel requiredProtectionLevel,
TokenImpersonationLevel allowedImpersonationLevel)\r\n at
System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.CreateAuthenticatedStream(Stream
netStream, String machinePortAndSid)\r\n at
System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.CreateSocketHandler(Socket
socket, SocketCache socketCache, String machinePortAndSid)\r\n at
System.Runtime.Remoting.Channels.SocketCache.CreateSocketHandler(Socket
socket, String machineAndPort)\r\n at
System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSo
cket(EndPoint ipEndPoint)\r\n at
System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket()\r\n at
System.Runtime.Remoting.Channels.SocketCache.GetSocket(String
machinePortAndSid, Boolean openNew)\r\n at
System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestWithRetry(IMessage
msg, ITransportHeaders requestHeaders, Stream requestStream)\r\n at
System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage
msg, ITransportHeaders requestHeaders, Stream requestStream,
ITransportHeaders& responseHeaders, Stream& responseStream)\r\n at
System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage
msg)\r\n\r\nException rethrown at [0]: \r\n at
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg)\r\n at
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
msgData, Int32 type)\r\n
Does this an internal problem from .net framework? Any help will be
appreciated!