我有一个使用免费Windows Store许可证的基本DevForce Windows应用商店应用程序。
当作为Web项目运行时,我能够成功执行查询。
但是,使用ServerConsole.exe托管时,我收到以下异常:
没有端点监听 可以接听电话的
http://localhost:63191/EntityService.svc/winrt
从这个应用程序。如果在Visual Studio中运行,请确保 为Web中的所有IdeaBlade程序集引用设置CopyLocal = true 项目以确保将这些程序集复制到bin文件夹。 还要检查global.asax是否包含注册DevForce的代码 VirtualPathProvider,或EntityService.svc和 存在EntityServer.svc文件 要检查服务是否正在运行,请打开Internet浏览器并执行 导航到http://localhost:63191/EntityService.svc
。如果服务 页面显示错误,这些应该有助于诊断问题 服务。如果服务正在运行,那么也要确保 客户端和服务器之间的端点绑定匹配,以及 服务器的ClientApplicationType是“全部”。或者纠正这个 客户。检查服务器的调试日志文件以获取更多信息。
解决方案中有三个项目,App1(Windows Store),DomainModel(NET4.5)和App1.Web(Web Application)。 ServiceConsole.exe已复制到DomainModel的输出目录中。
ServerConsole正确报告:
Trying programmatic configuration of EntityService using
ideablade.configuration section EntityService listening on
http://localhost:63191/EntityService/winrt EntityService listening on
http://localhost:63191/EntityService/wp Press <Enter> to exit server.
导航到
`http://localhost:63191/EntityService.svc` shows `404 Not Found`.
`http://localhost:63191/EntityService` shows the standard Web Service info page.
答案 0 :(得分:1)
这是由于&#34; infelicity&#34;在DevForce中。对于移动客户端,默认情况下假设EntityService将由IIS托管并自动附加WCF所需的.svc扩展名。
要解决此问题,您可以添加DevForce ServiceProxyEvents类的自定义实现来去除扩展并替换URI。
class ClientProxy : IdeaBlade.EntityModel.ServiceProxyEvents
{
public override void OnEndpointCreated(System.ServiceModel.Description.ServiceEndpoint endpoint)
{
var olduri = endpoint.Address.Uri;
var newuri = new Uri(olduri.AbsoluteUri.Replace(".svc", string.Empty));
endpoint.Address = new System.ServiceModel.EndpointAddress(newuri);
base.OnEndpointCreated(endpoint);
}
}
将课程安排在客户端组件中,该组件将被探测到#34;通过DevForce。