«Не получен сигнал от MSDynamicsSL» и «Не удалось прочитать с порта IPC: конвейер завершен»: ошибки кода C # или что-то еще? - PullRequest
0 голосов
/ 07 января 2019

Я пытался разобраться в программе, построенной на C #, которая успешно компилируется, предназначенной для MS Dynamics 2015. Она должна взаимодействовать с сервером на удаленном рабочем столе и передавать финансовые данные экземпляру установленной MS Dynamics. на этом сервере. Когда программа загружается, она распознает, открыта ли MS Dynamics, и также распознает наличие удаленного сервера и базы данных SQL, которую я пытаюсь включить. Однако при попытке импортировать данные в Dynamics SL появляется одна из двух ошибок.

1.) Эта ошибка появляется, если я пытаюсь импортировать, работая от имени администратора:

> ************** Exception Text ************** System.Exception: Did not receive signal from MSDynamicsSL.    at
> Microsoft.Dynamics.SL.ObjectModel.IPCManager.ParentStarter.StartTheProcess()
> at
> Microsoft.Dynamics.SL.ObjectModel.IPCManager.ParentStarter.StartServer()
> at
> Microsoft.Dynamics.SL.ObjectModel.IPCManager.ToolbarClientIPC.GetRemoteSubject()
> at Microsoft.Dynamics.SL.ObjectModel.SIVToolbar..ctor()    at
> ProgramXImport.SLImport.ImportIntoSL(Object sender, DoWorkEventArgs
> ea)    at
> System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)   
> at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object
> argument)

2.) Эта ошибка появляется, если я пытаюсь импортировать без запуска от имени администратора:

> ************** Exception Text ************** System.Runtime.Remoting.RemotingException: Failed to read from an IPC
> Port: The pipe has been ended.
> 
> 
> Server stack trace:     at
> System.Runtime.Remoting.Channels.Ipc.IpcPort.Read(Byte[] data, Int32
> offset, Int32 length)    at
> System.Runtime.Remoting.Channels.Ipc.PipeStream.Read(Byte[] buffer,
> Int32 offset, Int32 size)    at
> System.Runtime.Remoting.Channels.SocketHandler.ReadFromSocket(Byte[]
> buffer, Int32 offset, Int32 count)    at
> System.Runtime.Remoting.Channels.SocketHandler.Read(Byte[] buffer,
> Int32 offset, Int32 count)    at
> System.Runtime.Remoting.Channels.SocketHandler.ReadAndMatchFourBytes(Byte[]
> buffer)    at
> System.Runtime.Remoting.Channels.Tcp.TcpSocketHandler.ReadAndMatchPreamble()
> at
> System.Runtime.Remoting.Channels.Tcp.TcpSocketHandler.ReadVersionAndOperation(UInt16&
> operation)    at
> System.Runtime.Remoting.Channels.Ipc.IpcClientHandler.ReadHeaders()   
> at
> System.Runtime.Remoting.Channels.Ipc.IpcClientTransportSink.ProcessMessage(IMessage
> msg, ITransportHeaders requestHeaders, Stream requestStream,
> ITransportHeaders& responseHeaders, Stream& responseStream)    at
> System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage
> msg)
> 
> Exception rethrown at [0]:     at
> Microsoft.Dynamics.SL.ObjectModel.ObjectModelHelper.ReThrowParentToolbarException(Exception
> ex)    at
> Microsoft.Dynamics.SL.ObjectModel.SIVToolbar.set_Visible(Boolean
> value)    at ProgramX.SLImport.ImportIntoSL(Object sender,
> DoWorkEventArgs ea)    at
> System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)   
> at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object
> argument)

Это старая программа, и C # обычно не является моим языком внимания. Я уже решил много других проблем, связанных с этой программой, но мне трудно понять эту часть. Любая помощь будет принята с благодарностью.

...