2

我们使用 IPC 收到以下错误。
“无法连接到 IPC 端口:系统找不到指定的文件。” 该问题发生在 Windows 2003 服务器上。

当然,它只发生在生产中。我们无法在我们的开发环境中重现这一点。

尝试使用 IPC 的 Windows 服务正在作为本地系统运行。

是否有某种需要更改的权限?

4

4 回答 4

1

我们试图在频道启动之前访问它。所以我们会收到“未找到”错误。将访问代码包装在一些“是否真的准备好”代码中解决了这个问题。

于 2009-04-07T12:54:38.667 回答
1

对我来说,DTA 工作正常。但突然我开始遇到同样的错误。

对我来说,修复是这样的:

-> Go To Task Manager
-> Go To Processes Tab
-> Find and kill the DTA process. For me this process is named as 'DTASHELL.exe'

现在尝试启动 DTA。它现在应该可以工作了:-)

于 2013-01-02T17:34:39.950 回答
1

我们在生产代码中遇到了这个问题。它在一小部分用户系统上失败了。

错误结果出现在我们使用的微软代码中。它使用用户名生成 IPC 通道。

ipc://APP_USER_000:SingeInstanceIPCChannel/SingleInstanceApplicationService

如果用户名中包含某些字符,则会生成无效的频道 URL,因此接收应用程序首先无法创建频道。

我们的解决方法是使用用户名的哈希,而不是用户名中的第一个字符。

(我们在这里使用代码:http: //blogs.microsoft.co.il/blogs/arik/archive/2010/05/28/wpf-single-instance-application.aspx

于 2013-01-09T15:05:11.430 回答
0

请发布您用于初始化服务器通道和发布对象的代码,以及您在尝试访问远程对象时使用的 uri 的客户端代码。

一个常见的陷阱是当您使用字典初始化通道,并使用设置通道的名称时

dic["name"] = "channelName";  
//used for retrieving the channel - ChannelServices.GetChannel("channelName");

代替

dic["portName"] = "channelName";
//used as the identifier for the named pipe - 
//The client should get the object from the uri : ipc://channelName/objectName
于 2009-03-30T09:36:19.557 回答