WCF ServiceHost访问权限

通过WCF教程时,出现以下错误。

HTTP无法注册URL http:// +:8000 / ServiceModelSamples / Service / 。 您的进程无权访问此名称空间(有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=70353 )。

这是由Windows 7的限制造成的吗?

问题是URL被阻止被Windows创build。

要解决的步骤:以pipe理员身份运行命令提示符。 将该URL添加到ACL

netsh http add urlacl url=http://+:8000/ServiceModelSamples/Service user=mylocaluser 

如果您正在通过IDE运行,则以pipe理员身份运行应该有所帮助。 为此,请findVisual Studio 2008/10应用程序图标,右键单击它并select“以pipe理员身份运行”

另一个解决scheme是使用地址

http:// localhost:8732 / Design_Time_Addresses / YOUR_ADDRESS 。

.NET Framework(3.5)会自动注册该地址(http:// *:8732 / Design_Time_Addresses)以用于debugging范围。 当您需要在Visual Studio中托pipe服务以进行debugging或testing时,这非常有用。 不要在生产中使用这个…

你用pipe理员打开命令提示符,然后你写下这个文本:

 netsh http add urlacl url=http://+:8000/ServiceModelSamples/Service user=Everyone 

你可以在这个博客上find很多有用的信息。

嘿还提供了一个很好的GUI工具。

打开Visual Studio作为pipe理员..它将运行。

我正在使用Windows Vista。 即使我面临同样的问题,但是当我试图用pipe理权限运行VS 2008时,问题解决了,我的服务已经启动并正在运行。 🙂

请在pipe理模式下打开您的Visual Studio然后尝试它。

以pipe理员身份运行Visual Studio可以解决此问题,但是如果使用Visual Studio与TortoiseSVN,则不能提交任何更改。 另一种可能的解决scheme是以pipe理员身份运行服务,其余的Visual Studio以本地用户身份运行。

请以pipe理员身份打开您的Visual Studio:

在这里输入图像说明

如果在尝试启动Windows服务时出现此错误,请将Windows服务用户添加到pipe理员组(计算机pipe理 – >本地用户和组 – >组 – >pipe理员 – >在此添加您的Active Directory用户)。