問題タブ [azure-role-environment]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure-role-environment - 「ServiceRuntime.RoleEnvironment」の型初期化子が例外をスローしました
私は、構成値を読み取るための1つのメソッドと、実行されていない場合ServiceConfiguration
に読み取るためのフォールバックコードを備えたカスタムのAzureユーティリティDLLを持っています。この DLL は、ローカルおよび運用クラウド環境で実行されている Azure WCF プロジェクトで正常に動作します。AppSettings
web.config
RoleEntironment
何らかの理由で、IIS の Rackspace サーバーでこの WCF サービスをホストしています。
私のローカル マシン IIS では、WCF サービスは正常に動作しますが、Rackspace では次のエラーでクラッシュします。
'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment' の型初期化子が例外をスローしました。
をコピーし、WindowsAzure.ServiceRuntime.dll
ラックスペースのビンに入れました。それでも同じエラーが発生します。Diagnostics.dll
StorageClient.dll
へのコピーも試み<startup useLegacyV2RuntimeActivationPolicy="true">
ましたがWeb.config
、まだ機能しません。
何か案が?不足しているクラウド DLL が他にあるのでしょうか。それとも、さらに構成が必要ですか?
azure - Azureで*最後の*ロールインスタンスがシャットダウンしたことを検出する
ロールインスタンスがシャットダウンまたは開始するタイミングを検出するイベントがあることは知っていますが、最後のロールインスタンスがシャットダウンするタイミングを検出する方法はRoleEnvironment
ありますか?(つまり、役割全体がシャットダウンされます)
これはハードウェアクラッシュの場合には完全な証拠ではないことを理解していますが、役割が終了しているときに、不要になったServiceBusサブスクリプションを取り除くためにクリーンアップを行う必要があります。
azure - Azure への SSL 警告公開ロール
ロールを Azure に発行すると、プロセスが保留状態のままになり、最終的にプロセスをキャンセルする必要があります。次の警告が継続的に繰り返されます。
これまでのところ、公開に問題はなく、何が変わったのかわかりません。VS2010、.NET 4.0、Windows Azure SDK 2011 年 11 月を使用。
azure - WindowsAzureロール環境-アセンブリが見つかりません
Windows Azureロール環境を呼び出すと、このエラーが発生します。DotNetOpenAuth.OAuth.Common.dllをCopyLocal=Trueとして確認しました。
何か案が?
System.TypeInitializationExceptionがキャッチされましたHResult=-2146233036
Message=''の型初期化子が例外をスローしました。
Source = Microsoft.WindowsAzure.ServiceRuntime TypeName =
StackTrace:Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetLocalResource(String localResourceName)at Platform.Services.Api.Common.FileStorage.GetFilePath(String azureLocalResourceNameFromServiceDefinition、String blobContainer、String fileName)in d:\ TFS Project \ DEV \ Platform \ Platform .Development \ Platform.Services.Api \ Common \ FileStorage.cs:line 16 at Platform.Services.Api.Controllers.ReportingController.PrintProcessInteraction(Int64 id)in d:\ TFS Project \ DEV \ Platform \ Platform.Development\Platform。 Services.Api \ Controllers \ ReportingController.cs:line 217 InnerException:.ModuleLoadException HResult = -2146233088メッセージ=デフォルトのアプリドメインを初期化しようとしたときに、C++モジュールを読み込めませんでした。errorMessage、Exception innerException)at .LanguageSupport.Initialize(LanguageSupport *)at .cctor()InnerException:System.Runtime.Serialization.SerializationException HResult = -2146233076 Message = Unable to find assembly'DotNetOpenAuth.OAuth.Common、Version = 4.2.0.0 、Culture = neutral、PublicKeyToken =2780ccd10d57b246'。Source = mscorlib StackTrace:サーバースタックトレース:System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()at System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo、String name)at System.Runtime .Serialization.Formatters.Binary.ObjectMap..ctor(String objectName、String [] memberNames、System.Runtime.Serialization.Formatters.BinaryのBinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTypedレコード)。_BinaryParser.Run()at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler、__BinaryParser serParser、Boolean fCheck、Boolean isCrossAppDomain、IMethodCallMessage methodCallMessage)at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize( System.Runtime.Remoting.Channels.CrossAppDomainSerializer.DeserializeObject(MemoryStream stm)at System.Runtime.Remoting.Messaging.SmuggledMethodCallMessage.FixupForNewAppDomain()at System.Runtime.Remoting.Channels.CrossAppDomainSerializer.DeserializeObject(MemoryStream stm)at System.Runtime.Remoting.Channels.CrossAppDomainSerializer.DeserializeObject(MemoryStream stm)at System. Remoting.Channels.CrossAppDomainSink.DoDispatch(Byte [] reqStmBuff、SmuggledMethodCallMessage smuggledMcm、SmuggledMethodReturnMessage&smuggledMrm)at System.Runtime.Remoting.Channels.CrossAppDomainSink.DoTransitionDispatchCallback(Object [] args)例外が[0]で再スローされました:at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg、IMessage retMsg Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData、Int32 type)at System.AppDomain.get_Id()at .DoCallBackInDefaultDomain(IntPtr function、Void * cookie)at .DefaultDomain.Initialize()at .LanguageSupport.InitializeDefaultAppDomain(Language )at .LanguageSupport._Initialize(LanguageSupport *)at.LanguageSupport。Initialize(LanguageSupport *)InnerException:
c# - Web または Worker ロールの外部で Microsoft.WindowsAzure.ServiceRuntime を参照する
Microsoft.WindowsAzure.ServiceRuntime
Web/Worker ロールの外側を使用できるようにする必要があるシナリオがあります。
具体的には、次のコードがあります
このコードは、RoleEntryPoint.OnStart
イベント内で実行すると正常に実行されますが、このコードを別の exe で実行しようとすると、Azure スタートアップ タスクによってトリガーされます。
次のエラーが表示されます
The type initializer for 'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment' threw an exception.
Web または Worker ロールの外でこのライブラリを参照することが事実上可能かどうか、確認していただけますか? もしそうなら、私が間違っているかもしれないことについてアドバイスを提供してください。
c# - 他のロール インスタンスがビジーかどうか、および/または回復しているかどうかを判断しますか?
StackOverflowに関するこの質問/回答に基づいて、すべてのインスタンスでコードを実行するのではなく、単一の Azure インスタンスで特定のコードを一度に実行することを検討しています。
ただし、私が見つけることができないように見えるのは、まだ役割RoleEnvironment.CurrentRoleInstance.Role.Instances
が忙しいかどうか、および/または治癒しているかどうかを判断する方法です。これは、コードの実行の制御を別のインスタンスに引き渡すために必要です。
RoleInstance
現在の役割のステータスを決定するためのプロパティがないようです。
.net - Azure で作成された仮想マシン内から外部エンドポイントを特定する方法は?
ワーカーまたは Web ロールの代わりに Azure VM で実行する必要があるサーバー アプリケーション (TCP ポートでリッスンする .NET コンソール アプリケーション) があり、そのアプリが独自のパブリック/インターネットを決定できるようにする必要があります。エンドポイントの IP とポート (たとえば、VM が管理ポータルを通じて作成されたときに作成/割り当てられたもの)。アプリがリッスンする内部 TCP ポートはすべての VM で同じですが、外部/インターネット ポートは明らかに VM インスタンスごとに一意になります (私は Azure ロード バランサーを使用していません)。
.NET コンソール アプリケーションを変更して、 を使用してホスト仮想マシンの公開 IP アドレスとポートを特定しようとしましたが、例外 (「ロール検出データが利用できません」)RoleEnvironment.CurrentRoleInstance.InstanceEndpoints[i].IPEndpoint
がスローされ、常に. ドキュメントには、これが可能であると書かれています:RoleEnvironment.CurrentRoleInstance
RoleEnvironment.IsAvailable
false
RoleEnvironment クラスは、Azure ロールの外部にある Azure VM のスタンドアロン コンポーネントで使用できます。これらのコンポーネントは、たとえば、ロール インスタンスにリモートで移動し、コマンド ラインからコンポーネントを起動することによって実行できるプログラムにすることができます。RoleEnvironment クラスにアクセスするには、これらのプロセスを昇格した権限で実行する必要があります。
VM に対してリモート デスクトップを使用してコンソール アプリケーションを実行し、.exe を右クリックして [管理者として実行] を選択していますが、RoleEnvironment.IsAvailable
まだfalse
. Windows Azure 統合コンポーネントを何らかの方法で VM にインストールする必要がありますか? Azure でホストされる Hyper-V VM を準備するときに、Hyper-V でそれを実行することについて、オンラインのすべてのリンクで説明されています。ただし、この場合は、管理ポータルを使用して既定の Windows Server 2012 R2 データセンター イメージを選択することにより、最初から Azure で直接 VM を作成しています。この場合のインストール方法や、まだサポートされているかどうかはわかりません (Windows Azure 統合コンポーネントに関するリンクのほとんどは 2011 年のものです)。
最終的な問題は、Azure VM で実行されているスタンドアロン アプリケーションが、その VM のパブリック エンドポイントをどのように判断できるかということです。
azure - Azure Autoscale が実行中のインスタンスを再起動する
コストを削減するために、Autoscale を使用してクラウド サービスのインスタンスを 2 つから 1 つに切り替えています。これはほとんど機能しますが、時折 (ここでどのようなパターンがあるかはわかりません)、スケールアップ (1->2) することで両方のインスタンスがリサイクルされ、ユーザーのサービス停止が発生します。
トポロジの変更に応じて RoleEntry で特別な処理が行われないと仮定すると、なぜ 1 から 2 へのスケーリングで既に実行中のインスタンスが再起動されるのでしょうか?
その他の注意事項:
- 管理ポータルの [インスタンス] タブを見ると、両方のインスタンスがリサイクルされていることがわかります。停止は公開サイトを叩いても確認できます。
- 一貫して発生するわけではありませんが、パターンが何であるかはわかりません。1 インスタンス構成が数日間実行されている場合、スケールアップを試みると両方がリサイクルされるように感じます。ただし、1 インスタンス構成が数時間しか実行されていない場合は、停止することなくスケールアップおよびスケールダウンできます。
- 最初のインスタンスは、導入された 2 番目のインスタンスよりもはるかに速く戻ります。