2012-03-19 10 views
1

これは私の最初の紺碧のプロジェクトです。何か間違っているかどうかは分かりません。 私はMVC 3 webrole内のいくつかの設定を取得しようとしていると、このために私が使用している:カンント読み取り設定。 RoleEnvironmentは保護レベルのためにアクセス不能になる可能性があります

RoleEnvironment.GetConfigurationSettingValue(KeyName) 

私はエミュレータ上でアプリケーションを実行すると、私は彼のエラーを取得:

BC30451: 'RoleEnvironment' is not declared. It may be inaccessible due to its protection level. 

私はこのような完全な名前空間を追加しようとしました:

Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetConfigurationSettingValue(KeyName) 

そして、私はこのエラーを取得する:

BC30456: 'ServiceRuntime' is not a member of 'WindowsAzure'. 

しかし、私はWebRoleクラスの "OnStart"イベントの中でRoleEnvironmentにアクセスできます。 それは期待された動作ですか?はいの場合、プロジェクト全体を通して設定を読み込むにはどうすればよいですか?

ありがとうございます。

答えて

1

私はseanostの提案に基づいて新しいソリューションを開始しましたが、うまくいきましたので、問題はVSではないと考えました。いくつかの試行錯誤の後、私は最終的に解決策を見つけただけで、それについての説明はありません:-)

私のMVCプロジェクトでは、 "App_Code"というフォルダがあります。 私はWebフォームの開発から来たので、私はこの名前を使用していますので、このフォルダを作成していくつかのクラスを作成しました。私がこのフォルダ内のクラスから "RoleEnviroment"にアクセスしようとすると、プロジェクトはコンパイルされますが、オープンしようとしても、アクセスしようとしても同じエラーがスローされます。

フォルダの名前を変更したり、ファイルを別のフォルダに移動したりすると(「コード」と言う)、それだけで動作します。 私が以前に言ったように、なぜそれが起こるのか分かりません(それは本当に問題になります:-)

1

MVCプロジェクトのMicrosoft.WindowsAzure.ServiceRuntimeアセンブリへの参照を追加しましたか?

は、Visual StudioのAzureのテンプレートを使用している場合、それは trueにローカルコピーを設定する必要はありませんので、FYI、次の名前空間への参照は、デフォルトで含まれてい

http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.aspx

+0

はい、私はMicrosoft.WindowsAzure.ServiceRuntime、Microsoft.WindowsAzure.Diagnostics、Microsoftへの参照を追加しました.WindowsAzure.StorageClient。問題があるかどうかはわかりませんが、copy local = trueをMicrosoft.WindowsAzure.ServiceRuntimeに設定すると何らかの理由でアプリケーションが起動しません。 – CodeMaster2008

+1

.NET 4.0用にビルドしていますか?あなたはクライアントのプロファイルが設定されていないか、何か奇妙なことがありますか? –

0

  • マイクロソフト。 WindowsAzure.Diagnostics
  • Microsoft.WindowsAzure.ServiceRuntime
  • Microsoft.WindowsAzure.StorageClient

Visual StudioとSDKが正しくインストールされていることを確認するには、次の操作を行うことができます。新しいMVC3 Azureプロジェクトを作成し、HomeRowtimeライブラリのusingディレクティブを追加してから、その後

ViewBag.configValue = RoleEnvironment.GetConfigurationSettingValue("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"); 
return View(); 

、ビューで、次のカミソリ構文を追加します:indexアクションで

<p>@ViewBag.configValue;</p> 

そして、あなたがお使いのブラウザで次のような結果を得る必要があります。

UseDevelopmentStorage=true 
関連する問題