1

我正在将一个项目升级到 Windows Azure 1.3,我遇到了在内部 Web 角色中托管 WCF 服务的问题。尝试访问服务时出现以下异常:

HTTP could not register URL http://127.0.0.1:5111/service.svc/. Your process does not have access rights to this namespace

我在使用 Azure 1.0 时确实遇到了类似的问题,并使用以下代码解决了它:

new BasicHttpBinding() { HostNameComparisonMode = HostNameComparisonMode.Exact }

对于这个新问题,似乎有一些常见的解决方案;使用上面的代码,运行 httpcfg 工具来显式更改命名空间保留,并以管理员身份运行。

据我所知,httpcfg 工具不适用于 Azure 内部 WebRole,因为端口是动态分配的。以管理员身份运行 Visual Studio 并调试 Cloud 项目也不能解决问题(Visual Studio 会启动模拟器)。

Azure Compute Emulator 似乎没有从 Visual Studio 进程继承权限。有没有人遇到过类似的问题,关于修复的任何想法,变通方法?

卡尔

4

1 回答 1

0

好吧,我的猜想被证明是正确的。当 Azure Compute Emeulator 启动时,它会在 IIS 中添加 Web 角色实例,但应用程序池标识没有注册命名空间的权限。

我发现这篇博客文章描述了如何在启动 Web 角色实例时更改应用程序池的身份。

http://www.wadewegner.com/2011/01/programmatically-sharing-the-apppool-identity-in-a-windows-azure-web-role/

这是一个不太理想的解决方案,但有效。

于 2011-02-16T01:06:31.933 回答