私の MVC Web アプリでは、1 つのコントローラー関数 (Validate) がサービスを呼び出します。以下のコードを参照し、MessageHandlerClient が Visual Studio で生成されたサービス プロキシであることを確認してください。サービス プロキシ呼び出し client.ValidateMessage(formdataasbson["HLmessage"].ToString()) は、ローカルの開発環境で正常に動作します。プロジェクトを Azure に発行すると、Validate コントローラー関数の呼び出しが機能しなくなります。プロキシに問題があるのではないかと考え、Validate() を変更して、ハードコーディングされた結果を返し、Azure に再発行しました。すべて正常に動作し、Azure での Web サービス プロキシの動作に問題があることを確認しました。
[HttpPost]
public ActionResult Validate(String serializedformdata)
{
try
{
BsonDocument formdataasbson = this.serializer.JSONFormtoBSON(serializedformdata);
MessageHandlerClient client = new MessageHandlerClient();
this.jsonresponse.ReturnValue = "true";
StandaloneValidator.My_ServiceReference.Error[] results = client.ValidateMessage(formdataasbson["HLmessage"].ToString());
this.jsonresponse.ReturnMessage = results.ToJson();
return Json(this.jsonresponse);
}
catch (Exception ex)
{
this.jsonresponse.ReturnValue = "false";
this.jsonresponse.ReturnMessage = ex.Message;
return Json(this.jsonresponse);
}
}
さらに、ローカルの web.config ファイルに Web サービス プロキシの詳細が次のように表示されます (IP は意図的に隠されています)。
Azure の web.config に関するさまざまな投稿と、それが書き込み可能ではないという事実を読んだので、ローカル ..... プロキシ情報が Azure に公開されていないのではないかと疑っています。実際に web.config がローカルから Azure に発行されない場合、プロキシが機能しない理由がわかりました。質問は...どうすれば直せますか??!
編集: web.config から Azure の csfg ファイルへのいくつかの設定の移行について議論しているさまざまな投稿を目にします - おそらく実行可能な解決策でしょうか? これらの設定の手動読み取りをコーディングしていないことを考えると (単に URL からサービスへのサービス プロキシを作成しただけです)、自動生成されたコードや、移行された設定を読み取る方法がわからないサービスの「内部」動作について心配しています。 csfg.