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 を実行し、クラウド プロジェクトをデバッグしても問題は解決しません (Visual Studio はエミュレータを起動します)。

Azure Compute Emulator は、Visual Studio プロセスからアクセス許可を継承していないようです。誰かが同様の問題に遭遇しましたか、修正、回避策に関するアイデアはありますか?

カール

4

1 に答える 1

0

さて、私の疑惑は正しいことが証明されました。Azure Compute Emeulatorが起動すると、IISにWebロールインスタンスが追加されますが、AppPoolIdentityには名前空間を登録するためのアクセス許可がありません。

Webロールインスタンスの起動時にアプリプールのIDを変更する方法を説明しているこのブログ記事を見つけました。

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

これは理想的な解決策ではありませんが、機能します。

于 2011-02-16T01:06:31.933 に答える