/ / MVCアプリをサーバーにデプロイした後のJQueryファイル404(見つかりません)および500(内部サーバーエラー)-jquery、asp.net-mvc、iis-7

Server - jquery、asp.net-mvc、iis-7にMVCアプリケーションをデプロイした後のJQueryファイル404(見つからない)と500(内部サーバーエラー)

これに苦労している人がたくさんいるようです同じ問題ですが、正しい方向に導くものはないようです-おそらく私は正しく理解していないか、状況が少し異なります-ローカルで完全に実行されるMVCアプリを作成しましたが、デプロイすると次のようになりますコンソールのエラー:

リソースの読み込みに失敗しました:サーバーはステータス404で応答しました (見つかりません):glyphicons-halflings-regular.woff2

リソースの読み込みに失敗しました:サーバーはステータス404で応答しました (見つかりません):/ api / notifys

リソースのロードに失敗しました:サーバーはステータス500で応答しました (内部サーバーエラー) : BudgetingTool / Account / UserDetails?searchTerm = Peter + Pan&_ = 1506510511716

最後のものはデータを返すために使用されるため、最も重要です。そのコードは次のとおりです。

public ActionResult UserDetails(string searchTerm = null)
{
var data = UserManager.Users.FirstOrDefault(r => (r.FirstName + " " + r.LastName) == searchTerm);
IEnumerable<SelectListItem> rolesList = null;
IEnumerable<SelectListItem> organisationList = null;
Organisation organisation = null;
Department department = null;

if (data != null)
{
var userOrganisations = _organisationRepo.GetUserAssignedOrganisation(data.Id);
organisation = _repository.FindOrganisationById(data.OrganisationId);
department = _departmentRepo.FindDepartmentById(organisation.DepartmentId);
rolesList = ShowAllowedRoles(data.Id);
organisationList =
_repository.GetOrganisationsInHierarchyOrder(0,0,0).Select(r => new SelectListItem
{
Selected = userOrganisations.Any(x => x.OrganisationId == r.OrganisationId) ? true : false,
Text = r.Name,
Value = r.OrganisationId.ToString()
});
//SelectedOrganisations = OrganisationList.Where(x => x.Selected == true).ToList().Select(r=> new List<string>{ r.Value});
}
else
{
organisationList = _repository.GetOrganisationsInHierarchyOrder(0, 0, 0).GroupBy(m => m.Name).Select(y => y.First()).Select(r => new SelectListItem
{
Selected = false,
Text = r.Name,
Value = r.OrganisationId.ToString()
});
rolesList = GetRolesList();
}

var model = new UpdateUserInfoVM
{
Id = data == null ? string.Empty : data.Id,
FirstName = data == null ? string.Empty : data.FirstName,
LastName = data == null ? string.Empty : data.LastName,
Email = data == null ? string.Empty : data.Email,
Allowbudgetdeletion = data?.Allowbudgetdeletion ?? false,
LockoutEnabled = data?.LockoutEnabled ?? false,
//OrganisationId = data == null ? string.Empty : data.OrganisationId,
OrganisationId = data?.OrganisationId ?? 0,
Organisations = organisationList,
Roles = rolesList,
AccessFailedCount = data?.AccessFailedCount ?? 0,
LockoutEndDateUtc = data?.LockoutEndDateUtc,
AllowEditing = data.AllowEditing,
DistrictOrUrban = data?.DistrictOrUrban,
departmentId = organisation.DepartmentId,
DepartmentType = department.Name
//SelectedOrganisations = SelectedOrganisations
};

return PartialView("_ShowUserInfo", model);
//return Request.IsAjaxRequest() ? PartialView("_ShowUserInfo", model) : PartialView("_ShowUserInfo", model);
}

コンソールでエラーのリンクをクリックすると、これが表示されます(値が渡されていないかのように???

「/ BudgetingTool」アプリケーションのサーバーエラー。

オブジェクト参照がオブジェクトインスタンスに設定されていません。

説明:実行中に未処理の例外が発生しました。 現在のウェブリクエスト。スタックトレースを確認してください エラーに関する情報、およびコード内でエラーが発生した場所

例外の詳細:System.NullReferenceException:オブジェクト参照ではありません オブジェクトのインスタンスに設定します。

ローカルで完全に機能する方法がわかりませんが、公開してからリモートサーバーに展開したときはわかりません。

このフォルダーは仮想ディレクトリであり、プロジェクトファイルを含むフォルダーは、「Everyone」および「IIS_IUSR」と共有されます。どちらにも読み取り/書き込み権限があります。

人が探すことができる最も一般的なものは何ですか?とてもシンプルなものだと思いますが、それが何であるかを知ることはできません:(

正しい方向へのどんな助けも大いに役立つでしょう。

ありがとう!

回答:

回答№1は0

DevOpsには次のようなことわざがあります。「開発マシン以外の場所で機能しない限り、機能しません」。ここでは、コードはそのテストに失敗します。開発ボックスは手付かずの環境であり、正確に設定し、ローカルデータベースを確認します。絶対に正しいデータなどがあります。現実の世界はそれほど寛容ではありません。データベースからクエリを実行する場合、適切にコーディングしていなければ、本番環境はうまく機能しません。

つまり、データベースから何かをクエリするときはいつでも、クエリしているものが見つからないことを説明する必要があります。 〜すべき そこにいると、マーフィーの法則は、ある時点では存在しないと言っています。クエリから何も返されない場合、変数はnullに設定され、コードで適切なnullチェックを実行していない場合は、次のようになります。 NullReferenceExceptionこのような。

簡単に言えば、 NullReferenceException タイプインスタンスの有効なメンバーにアクセスしようとしたが、そのインスタンスは実際にはnullと評価され、nullにはその特定のメンバーがないことを意味します。次に例を示します。

organisation = _repository.FindOrganisationById(data.OrganisationId);
department = _departmentRepo.FindDepartmentById(organisation.DepartmentId);

ここで、あなたは「 Organization インスタンスは存在しますが、存在しない可能性があります。の値を取得しようとしています organization.DepartmentId のインスタンスがある場合は完全に有効です Organization、しかしもしあなたの organization 変数は実際にはnullです、まあ、nullにはありません DepartmentId メンバーとブーム: NullReferenceException.

nullになる可能性のある変数がある場合はいつでも、nullになると想定し、それに応じてコードを設計します。