2

我使用 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 上作为本地管理员和领域)

在此处输入图像描述

4

2 回答 2

5

Shift+Mouse Right Click在 Visual Studio 快捷方式上并选择以管理员身份运行

这样,您应该能够托管它。

或者,您可以在管理员帐户下以相同的方式构建项目并运行生成的控制台应用程序。

于 2011-08-01T16:00:14.367 回答
4

那是一个标准错误,意味着您的应用程序无法注册域。通常这是 vista/windows 7 的安全问题。以管理员身份登录并运行netsh http add urlacl url=http://+:80/Localhost user=DOMAIN\user

是一篇包含更多信息的 msdn 文章

于 2011-08-01T12:49:53.107 回答