Visual Studio2017を使用してAzureAppServiceでASP.NETアプリケーションを公開した後にHTTPERROR404を取得する

サミュエル・アンクチル

Visual Studio 2017(バージョン15.7.27703.2035)を使用してローカル環境で実行すると正常に動作するASP.NET Framework4.6.1のアプリケーションがあります。

サーバー側では、同じアプリケーションがHTTP ERROR404を表示しています。

ローカル環境のスクリーンショット

サーバー環境のスクリーンショット

ASP.NETアプリケーションを公開するには、Visual Studioの公開ツールを使用して、すべてをAzureのAppServiceに展開します。

VisualStudio公開ツールとプロジェクトアーキテクチャ

Web配置の代わりにFTP配置を使用しようとしましたが、成功しませんでした。FileZillaを使って手動で試しても成功しませんでした。

カスタムライブラリを使用してプロジェクトを公開するときに、何らかのアクションが必要になる可能性はありますか?


編集

私が知っていること:

  1. サーバー側のdll実際にはサーバー側のwwwrootフォルダーにアクセスできます。つまり、js、css、画像などにアクセスできます。しかし、コントローラー、ビュー、その他のフォルダーはサーバーに存在しないようです。

  2. 図書館issus?この問題は、プロジェクトをカスタムライブラリCrmDatabaseManager、SysaidDatabaseManager、およびUserInterfaceLibraryで細分化したときに発生しました。

  3. サーバー側のwwwroot内のwwwrootwwwrootフォルダーには、サーバー上の別のwwwrootフォルダーが含まれます。最初のwwwrootフォルダーにはすべてのdllが含まれ、その中にcss、js、画像などを含む別のwwwrootフォルダーがありますが、コントローラーやビューの兆候はありません。

  4. プロジェクトの作成方法.NETFrameworkに基づくASP.NETCore 2.0を使用して、この方法でプロジェクトGPRHを作成しました。

  5. 構成の公開
  6. プロジェクトのプロパティ
サミュエル・アンクチル

プロジェクトをライブラリで分割すると、パス参照が壊れたことがわかりました。

パスをハードコーディングしていましたが、メインプロジェクトに問題はありませんでした。プロジェクトをライブラリで分割すると、エラー404が発生しました。

ライブラリ内のファイルにアクセスするには、最初に次の操作を行う必要があります。

  1. ファイルの右クリック>プロパティ
  2. 上のビルドアクション、選択、必ずファイルをコピー

次に、ライブラリでこの方法でパスを指定します。

var buildDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var filePath = buildDir + @"\fileName.json";

using (StreamReader r = new StreamReader(filePath))
{
   // code here
} 

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ