【发布时间】:2013-01-14 09:43:12
【问题描述】:
我有一个 WCF 服务,用于公开数据源(通过 EF 模型连接)。由于某种原因,我的端点刚刚停止响应。
直到我最后一次更改之前,我只是在我的应用启动时提取数据。我现在正在努力在此基础上添加一个订阅/发布模型,这样我就可以在 WCF 服务遇到导致数据更改的事件时引发事件(可以在客户端执行此操作,但我不会捕获其他用户变化)。
我一直在关注 Microsoft 的示例:http://msdn.microsoft.com/en-us/library/ms752254.aspx 并为我的服务接口和实现添加了适当的装饰,并添加了订阅/取消订阅 OperationContract 等。我尝试启动服务但无法连接。
然后我从我的客户端删除了服务参考并尝试重新附加。奇怪的是:
1) WCF 服务在开发者主机中构建和启动。 2) 未触及 Web.Config 文件。 3)在vs 2012中添加服务参考中的“发现服务”选项可以看到该服务,但是当我尝试实际接受发现的服务时,它会抛出一个错误,提示“从地址下载元数据时出错。
我不明白它如何发现服务,然后无法将其添加为参考。我可以查看是否我自己添加了信息,但它找到了。
作为添加发布功能的一部分,我将 SessionMode.Required 标记添加到界面中,我不太确定 WCF 如何处理会话,也不必在我的编码中的其他任何地方处理会话(通常是提取数据从源头开始,而不是在本地处理它是我过去需要制作的工具类型,因此不需要在服务器端持久化状态)。
有什么想法吗?
我的服务 web.config:
<connectionStrings> <add name="TaskModelContainer" connectionString="metadata=res://*/TaskModel.csdl|res://*/TaskModel.ssdl|res://*/TaskModel.msl;provider=System.Data.SqlClient;provider连接字符串="数据源=winhacker\sqlexpress;初始 目录=TaskDB;集成 安全=真;MultipleActiveResultSets=真;应用=实体框架"" providerName="System.Data.EntityClient"/>
注意:请注意,大多数文件的格式设置不会显示在预览中,但只要说它是自动生成的样板文件就足够了,除了我添加了一个 connectionStrings 部分来喜欢我的EF 数据点。如果你想查看文件,点击“编辑”似乎会显示我复制的源代码,虽然格式有点奇怪。
【问题讨论】: