我在WPF应用程序中为某些任务使用自托管服务。服务主机在运行时启动,其基址为http://localhost:Whatever-port-is-free-at-runtime
。当用户具有管理权限时,这可以正常工作,但应用程序由受限用户运行时会出现问题。WCF ServiceHost受限用户netsh/httpcfg
我在网络上发现了一些建议,建议使用netsh/httpcfg
保留网址,该网址适用于管理员用户,但对于受限用户不适用,因为他们可能没有使用这些工具保留网址的权限。由于直到运行时才知道端口号,因此url保留命令在逻辑上只能在运行时运行,这意味着进程将由受限用户启动,而不具有执行命令的权限。我在想这个吗?
我想知道的是,如果有适当的解决方法?另外,我想知道受限用户是否可以打开本地托管的WCF服务,因为如果受限用户无法做到这一点,解决上述问题将毫无意义。
This question perfectly describes my first issue of URL reservation
此服务是否被任何客户端使用?如果是,那么客户端如何随着地址的变化动态生成地址而使用该服务。另外为什么你没有WCF服务的固定端口? – Rajesh 2013-03-20 17:02:23
是的,它被其他客户使用。动态生成的localhost:xxxx url在运行时会让客户端知道,所以这不是一个问题,因为当以admin身份运行时,此设置实际上工作。我不能拥有一个固定端口,因为我无法确定最终用户计算机上的硬编码端口号是否空闲,即使这是我仍然遇到的问题,因为我仍然需要保留命名空间。 – Bablo 2013-03-20 17:51:44