带有 Windows 服务的 WCF 服务

Posted

技术标签:

【中文标题】带有 Windows 服务的 WCF 服务【英文标题】:WCF Service with Windows Service 【发布时间】:2011-05-29 23:41:06 【问题描述】:

我创建了 WCF 服务库,并在 WCF 测试客户端(默认)上对其进行了测试。 当我在 winodws 服务中托管 WCF 服务时,我得到了错误。我正在使用 Windows XP、.Net 3.5 和 Visual Studio 2008。并且还使用 HTTPCFG.exe 将 URL 设置为 urlacl 概念,当时我也遇到了与下面给出的相同的错误。

打开主机时出错:HTTP 无法注册 URL“http://+:8731/WCFServerDLL/Service1/”。您的进程没有对此命名空间的访问权限(有关详细信息,请参阅“http://go.microsoft.com/fwlink/?LinkId=70353”)。

Windows XP sp3。

在这里我运行“httpcfg.exe set urlacl /u http://localhost:8731/WCFServerDLL/Service1/ /a "D:..."”

我得到结果

HttpSetServiceConfiguration 以 0 完成。

在 xp 中也使用 httpcfg 设置 URL。但我得到了同样的错误。

【问题讨论】:

【参考方案1】:

您必须添加一个 WCF 命名空间异常。使用这个命令

netsh.exe http 添加 urlacl url=http://+:8731/ user=computername\username

编辑:

对不起,netsh 适用于 Vista 和 7,我刚刚注意到您使用的是 XP。我对 XP 不太熟悉,但我相信以下方法会起作用。确保更换 myhost。

httpcfg.exe 设置 urlacl /u http://myhost:8731/ /a

【讨论】:

以上是关于带有 Windows 服务的 WCF 服务的主要内容,如果未能解决你的问题,请参考以下文章

wcf json 网络服务

除非客户端和服务器使用相同的 Windows 身份,否则带有 sspi 的 WCF Net.tcp 会失败

一段时间后,带有客户端证书的 WCF 应用程序失败?

在带有 WCF 的 App.config 中使用 Windows 角色身份验证

在服务实现中创建 System.Windows.Control 时,WCF 服务不起作用

使用 WCF NetNamedPipe 与客户端通信的 Windows 服务