我的WCF服务作为Windows托管服务托管,所以我不确定我是否仍然可以使用netTcpBinding。我试过在MSDN上遵循一些指南,但出于某种原因,我的服务总是无法启动,只要我从basicHttpBinding进行切换。也许还有其他步骤需要IIS以外的服务?我可以将netTcpBinding用于IIS以外托管的WCF服务吗?
3
A
回答
4
是的,你可以在IIS之外的netTcpBinding,Windows服务甚至控制台应用程序中托管WCF服务。
下面是配置文件示例:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="ServiceBehavior"
name="XX.XX.Service">
<endpoint address=""
binding="netTcpBinding"
bindingConfiguration="BindingConfiguration"
contract="XX.XX..IService" />
<endpoint address="mex"
binding="mexTcpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8731/XXService" />
</baseAddresses>
</host>
</service>
</services>
<bindings>
<netTcpBinding>
<binding
name="BindingConfiguration">
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
</system.serviceModel>
[编辑]
问题与您的配置文件:
- 基地址为http来代替的net.tcp
- 元数据端点是mexHttpBinding而不是metTcpBinding
- 安全性 - 默认情况下将使用Windows授权,如果测试与框之间的通信,则可能有权限问题。我建议先从安全模式None开始,然后在其他所有工作时调整安全性。
- 你不需要指定httpGetEnabled服务行为
- 如果你要使用的端口已在使用,您将无法启动服务
2
你绝对可以和我甚至会说你应该。
这是你的问题:
<services>
<service name="Server.FileService" ...
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/Test/file"/>
</baseAddresses>
</host>
<endpoint address="" binding="netTcpBinding" contract="Server.IFile" />
<endpoint address="mex" binding="mexHttpBinding" ...
的net.tcp
地址必须有一个net.tcp://
前缀,不是http://
前缀。
我通常不会使用baseAddress
所以不能给出建议。我删除baseAddress,而使用
<endpoint address="net.tcp://localhost:8001/Test/file" ..
(请注意,我也将选择另一个端口超过8000个)
相关问题
- 1. WCF数据服务可以由IIS以外的东西托管吗?
- 2. WCF:服务托管IIS以外使IIS的萎缩
- 3. 我可以在Windows服务中托管WCF服务吗?
- 4. 我可以使用IIS来托管WCF服务而不使用HTTP吗?
- 5. IIS外部托管的WCF RIA服务
- 6. 我可以在WCF中使用netTcpBinding添加服务引用吗?
- 7. 我可以通过非IIS托管的WCF服务提供网页吗?
- 8. 无法使用IIS中托管的netTcpBinding添加WCF服务的服务引用
- 9. 我可以在COM +中托管WCF服务吗?
- 10. Windows托管的WCF服务可以使用HTTPS吗?
- 11. 在IIS 8托管的WCF服务中共享端口80用于NetTcpBinding和BasicHttpBinding可能吗?
- 12. 我应该在IIS中托管我的WCF服务吗?
- 13. IIS托管的WCF服务可以配置为Windows验证和匿名吗?
- 14. IIS WCF服务托管与Windows服务
- 15. 我可以在IIS之外托管ASP.NET网站吗?
- 16. 我可以在IIS的同一网站上同时托管web服务和WCF服务吗?
- 17. WCF服务netTcpBinding + Windows使用IIS托管并使用角色进行授权
- 18. Windows托管服务可以成为wcf客户端吗?
- 19. 是否可以在IIS中托管WCF Web服务而不更改IIS?
- 20. 我可以在本地调用自托管WCF服务中的方法吗?
- 21. 多个客户端可以访问Windows服务中托管的WCF服务吗?
- 22. IIS托管WCF服务错误
- 23. WCF服务托管在IIS System.Runtime.InteropServices.SEHException
- 24. 更新IIS自动托管WCF服务
- 25. 在IIS上托管WCF服务
- 26. 对WCF托管REST Web服务与IIS
- 27. 在IIS上托管WCF服务
- 28. 错误在IIS托管WCF服务6.0
- 29. 在IIS中托管WCF服务
- 30. WCF - web.config:独立服务引用[用于自托管和IIS托管]
你应该完全能够做到这一点。你能分享相关的配置位吗? – 2011-05-24 02:05:01
netTcpBinding可用于Windows服务托管端点。你可以给我们更多的上下文(错误消息,服务定义信息等) – dlev 2011-05-24 02:05:10
@Terry @dlev:我使用installutil.exe来启动在VS2010之外运行的服务,所以我不确定如何获取异常消息。这里是我的app.config:http://pastebin.com/s3ibabxw – rafale 2011-05-24 02:09:52