DevForce Server Console - 没有端点侦听

时间:2014-08-26 00:13:16

标签: wcf devforce

我有一个使用免费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.

1 个答案:

答案 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。