Sco*_*nes 1 wcf web-config workflowservice endpoint workflow-foundation-4
我试图弄清楚如何为我创建的WF服务(MyFoo.xamlx)提供端点等.通常,当您创建服务时,您需要使用服务名称=""来反映您创建的服务类型?即通过填写这样的东西:
<Service name="MyNameSpace.Foo" behaviorConfiguration="myFooBehaviorConfig">
这适用于典型的.svc场景,我可以正常工作.只有将这个概念映射到.xamlx服务?在那里,如果我有Foo.xamlx放在服务名称内部不起作用 - 或似乎不起作用(因为没有启用元数据).
如果我然后从服务中删除了behaviorConfiguration属性,并从 标记中删除了myFooBehaviorConfig<behavior/> - 因为它基本上会为web配置带来更多的全局设置 - 繁荣!我可以看到.xamlx暴露的方法/操作?
<serviceBehaviors>
<behavior name="foo" >
VS
<serviceBehaviors>
<behavior >
起初这很好,不需要任何努力,但同时我不希望开发人员访问HTTP端点或netpipe.我只希望他们通过我指定的net.tcp端口进入.为了做到这一点,我需要以<Service name=""/>某种方式匹配xamlx?
我也尝试过使用创建一个空的.svc文件然后以那种方式指向xamlx的技巧(这样开发人员总是假定它的.svc而不是.xamlx)
<%@ ServiceHost Language="C#" Debug="true" Service="ActivityHubService.xamlx" Factory="System.ServiceModel.Activities.Activation.WorkflowServiceHostFactory" %>
再次,如果我删除命名行为等,这也可以通过foo.svc ..但我似乎无法破解<service> 与freakin xamlx 的整个匹配!:) 呵呵.
令人沮丧..
这个领域的专家是谁?
我要把这个给GuerreroTook,因为虽然他给出的答案部分在同一区域,然而它确实引发了一个"是啊也许那么简单......"的思考......
解决方案是这样的:
<services>
<service name="ActivityHubService" behaviorConfiguration="foo">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="netTCPStreamedBinding" contract="IService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://synapse.hub.security:669/SynapseHubSecurity/ActivityHubService" />
</baseAddresses>
</host>
</service>
</services>
Run Code Online (Sandbox Code Playgroud)
然后在一个名为PingService.svc的服务中,我把它放在:
<%@ ServiceHost Language="C#" Debug="true" Service="ActivityHubService.xamlx" Factory="System.ServiceModel.Activities.Activation.WorkflowServiceHostFactory" %>
Run Code Online (Sandbox Code Playgroud)
这似乎已经成功了!:)
不知道为什么,但我发誓我这样做3x,它失败了..但是......我也需要睡觉..
希望这将有助于其他人同样在赛道上堵塞.
| 归档时间: |
|
| 查看次数: |
2105 次 |
| 最近记录: |