【问题标题】:WCF self hosting application and namespace reservationWCF 自托管应用程序和命名空间保留
【发布时间】:2011-08-04 06:34:20
【问题描述】:

我是 WCF 新手,正在努力学习基础知识。

我创建了一个简单的 C# 控制台应用程序,它自己托管(通过使用 ServiceHost 类)一个简单的服务。

每当我尝试运行它时,我都会收到关于命名空间保留的异常。

我找到了一些命令 (netsh) 来防止这种情况发生,但是我想知道在自托管服务时是否必须这样做?

我希望能够在不做大量工作的情况下在机器上远程部署服务(“代理”),并能够与它们通信。

【问题讨论】:

  • 发布一些代码,因为我和你做的一样,并且从来没有遇到过命名空间问题...显示代码和错误消息:)

标签: c# wcf


【解决方案1】:

如果您不必确保与现有客户端的兼容性,一种解决方法可能是为您的服务使用不同的绑定。如果你没有绑定到 http,你可以使用 net.tcp 代替。这可以在没有命名空间保留的情况下工作,并且不需要管理员权限。

请参阅this chart 了解不同绑定提供的功能

【讨论】:

    【解决方案2】:

    捷径是运行您的服务主机宽度管理员权限。一旦你想实时托管你的服务,你应该考虑使用 IIS 来托管它们

    【讨论】:

    • 我不能也不想依赖 II 在那里托管。这就是为什么我正在寻找替代选项(Windows 服务、简单应用程序等)。
    • 如果您在控制台中运行 wcf 主机,则需要提升它。如果您在服务中运行主机,这将通过分配正确的执行用户来完成。另一个不错的副作用:独立 (wcf-) 服务不受 IIS 限制(例如,在 IIS 6 或更低版本上运行时,您可以绕过漂亮的 800mb 限制)
    • 请记住,当您开始构建自己的服务主机时,您缺少 IIS 可以为您提供的可靠性和监控功能。除此之外,您已经发现了如何使您的服务用户能够托管 WCF 服务。
    • 服务永远不会“实时”,因为它是一个内部组织应用程序,永远不会暴露在外部,只能在我们的实验室机器内部使用。
    猜你喜欢
    • 2015-04-27
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 2020-09-20
    相关资源
    最近更新 更多