我是WCF的初学者,但试图改善我的经验.在第一步,我遇到了问题.我创建了最简单的WCF服务.代码清单:(所有代码都在一个文件中)
using System;
using System.ServiceModel;
namespace EssentialWCF
{
[ServiceContract]
public interface IStockService
{
[OperationContract]
double GetPrice(string ticker);
}
public class StockService : IStockService
{
public double GetPrice(string ticker)
{
return 94.85;
}
}
class Service
{
static void Main(string[] args)
{
ServiceHost serviceHost = new ServiceHost(typeof(StockService),
new Uri("http://localhost:8000/HelloWCF"));
serviceHost.AddServiceEndpoint(typeof(IStockService), new BasicHttpBinding());
serviceHost.Open();
Console.WriteLine("To continue press ENTER");
serviceHost.Close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
那将是通过控制台给我一个号码的服务.但调试给我例外:(而不是数字:))
HTTP无法注册URL http:// +:8000/HelloWCF /.您的进程没有此命名空间的访问权限(有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=70353).
你有没有遇到过同样的情况?我很乐意看到每一条建议.
小智 224
遗憾的是,例外文本http://go.microsoft.com/fwlink/?LinkId=70353中的链接已损坏.但是,它曾经导致http://msdn.microsoft.com/en-us/library/ms733768.aspx,它解释了如何设置权限.
它基本上会通知您使用以下命令:
netsh http add urlacl url=http://+:80/MyUri user=DOMAIN\user
您可以使用帮助获得有关详细信息的更多帮助 netsh
例如: netsh http add ?
提供有关http add命令的帮助.
Joh*_*hur 178
我关闭Visual Studio IDE并通过右键单击Visual Studio图标并说"以管理员身份运行"重新打开它,然后当我运行主机时,它工作了!!!
小智 13
如果您的计算机位于局域网中,那么您需要一些管理员权限,然后您将一些管理员权限应用于您的用户,您应该以管理员身份启动ide ...
Ram*_*yev 11
您必须授予您的应用程序侦听 http 请求的权限。您可以在cmd中使用此命令来达到此目的(打开cmd以管理员身份运行模式)
netsh http add urlacl url=http://+:8000/ user=Everyone
Run Code Online (Sandbox Code Playgroud)
如果您的应用程序正在使用其他端口,例如 9095,则此命令必须如下所示:
netsh http add urlacl url=http://+:9095/ user=Everyone
Run Code Online (Sandbox Code Playgroud)
并重新运行您的应用程序,它应该可以工作。这种方式为我工作。
在Windows Vista和更高版本中,HTTP WCF服务会引起您提到的异常,因为受限帐户无权执行此操作。这就是当您以管理员身份运行它时起作用的原因。
每个明智的开发人员都必须使用RESTRICTED帐户而不是管理员身份,但是很多人走错了路,这就是为什么如此之多的应用程序没有真正需要它们时需要DEMAND管理员权限的原因。以惰性方式工作会产生惰性解决方案。希望您仍然在受限帐户中工作(对我表示祝贺)。
如果我没有记错的话,那里有一个名为NamespaceManagerTool的工具(大约从2008年开始),应该为您为WCF定义的这些服务URL授予受限用户权限。我没有用过...
您的示例代码将无法按所示方式工作,因为您忘记Console.ReadLine()在行前添加 a serviceHost.Close()。这意味着主机打开然后立即关闭。
除此之外,您的计算机似乎存在权限问题。确保您以管理员帐户登录计算机。如果您是管理员,则可能没有运行万维网发布服务 (W3SVC) 来处理 HTTP 请求。
| 归档时间: |
|
| 查看次数: |
153537 次 |
| 最近记录: |