我使用WCF服务创建了一个VS2010 C#解决方案,该库获取数据,该服务在解决方案中的控制台应用程序中运行正常。没问题。
我必须在VS2008项目上使用它(后来可能在VS2005上)用于旧项目。然后我启动VS2010我得到“WCF测试客户端”。此时在VS2008中,我尝试在本地计算机上“添加Web引用”...没有结果。
然后我尝试使用Vs2010创建一个控制台应用程序来托管它,我这样做了:
Uri baseAddress = new Uri("http://localhost:8080/hello");
using (ServiceHost host = new ServiceHost(typeof(SecurityAccessWCF.WCFSecurityService), baseAddress))
{
// Enable metadata publishing.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
host.Description.Behaviors.Add(smb);
host.Open();
Console.WriteLine("The service is ready at {0}", baseAddress);
Console.WriteLine("Press <Enter> to stop the service.");
Console.ReadLine();
// Close the ServiceHost.
host.Close();
}
我在Open()
上收到错误,我收到此错误“AddressAccessDeniedException - HTTP无法注册URL ...您的进程没有访问权限”(提供的链接不清楚,我在Win7 x64作为本地管理员和域名)
答案 0 :(得分:5)
Shift + 鼠标右键单击并选择以管理员身份运行
这样你就可以托管它。
或者,您可以构建项目并在管理员帐户下以相同的方式运行生成的控制台应用程序。
答案 1 :(得分:4)
这是一个标准错误,意味着您的应用程序无法注册域。通常这是带有安全性的vista / windows 7上的问题。以管理员身份登录并运行netsh http add urlacl url=http://+:80/Localhost user=DOMAIN\user
Here是一篇包含更多信息的msdn文章