AzureでホストされるApi Appをビルドしています。コントローラにはいくつかのコントローラがあり、それらはすべてBaseController:Controllerから継承しています。コントローラには、認証ヘッダーを読み取り、データベースを検索し、ユーザーがあればユーザーを返すメソッドが1つあります。 APIを呼び出した後、私はいくつかのタスクを実行するWebJobを開始したいと思います...ポイントは、WebJobのキューにメッセージを追加するためのメソッドを "コメントを解除"するたびに、アプリケーションは公開しません。開始時にのみ表示されます: 500内部サーバーエラー アプリケーションの起動中にエラーが発生しました。Azureへの展開後にAPIアプリが起動しない
[Route("api/[controller]")]
public class SendController : BaseController
{
public override OperationResult Get(Guid activityId)
{
var user = ValidateAndGetUser();
if (user == null)
{
connector.Log(null, activityId, Log.ActionType.Send, Log.SeverityLevel.Error, null, "User is null");
return new OperationResult
{
CampaignId = activityId,
IsSuceeded = false,
Type = OperationType.LoginFailed
};
}
if (activityId == Guid.Empty)
{
connector.Log(user.UserName, null, Log.ActionType.Send, Log.SeverityLevel.Error, null, "Activity ID is null");
return new OperationResult
{
UserName = user.UserName,
IsSuceeded = false,
Type = OperationType.RequestRejected
};
}
===commented section
/*try
{
connector.AddMessage(activityId, user, Log.ActionType.Send);
return new OperationResult
{
CampaignId = activityId,
//UserName = user.UserName,
UserName = user.UserName,
TextMessage = "Request processed.",
IsSuceeded = true,
Type = OperationType.RequestAccepted
};
}
catch (Exception e)
{
connector.Log(user.UserName, activityId, Log.ActionType.Send, Log.SeverityLevel.Error, e, "Add message failed.");
return new OperationResult
{
CampaignId = activityId,
UserName = user.UserName,
TextMessage = "Add message failed.",
IsSuceeded = false,
Type = OperationType.RequestFailed
};
}*/
===end commented section
===remove while above code is uncommented
return new OperationResult
{
CampaignId = activityId,
UserName = user.UserName,
TextMessage = "Add message failed.",
IsSuceeded = false,
Type = OperationType.RequestFailed
};
===end remove
}
}
...それはその後、より明確になることを願っ、のは、コードを取得してみましょうあなたが見ることができるように、TRY/CATCHがコメントアウトされています。これまでのところ、アプリケーションはOKをデプロイし、APIにナビゲートして正しい結果を得ることができます。認証ヘッダーを追加できます。コネクタインスタンスはユーザーを検索し、すべて正常に動作します。私がTRY/CATCHブロックのコメントを外すと、アプリケーションが開始されず、デプロイメントにもエラーメッセージが表示されず、単に「Web Appが正常に公開されました」と表示されます。アプリケーション。
ありがとうございました。
こんにちは。私が新しいことを学んだことを除いて、彼らは本当に役に立たなかったけれども、提案のためのタックス。私はこの問題を、ライブラリ関数の一部を直接コントローラクラスにマイグレーションすることで解決しましたが、これはプロップ解法(コードの二重性)ではありませんが、ちょっと、うまくいきます... まだそれはうまくいかず、ライブラリ内の関数は正常です。アプリケーションを呼び出す前に他のアプリケーションを呼び出すとアプリケーションが失敗します(私はコントローラコードの最初の行にデバッガをアタッチできませんでした。 – Klemikaze