MVC Music Store ASP.NETアプリケーションをC:\ Users\DEVESH\Desktop\Projects\MvcMusicStore-v3.0\MvcMusicStore-Completed\MvcMusicStoreにダウンロードし、IISにWebサイトを追加しましたロケーション。 IIS_IUSRSへのアクセス許可も与えましたが、localhostを実行するとエラーが発生します。
HTTPエラー403.14-禁止Webサーバーは、このディレクトリのコンテンツを一覧表示しないように構成されています。
Googleで検索しましたが、修正プログラムは見つかりませんでした。私が間違っているのは何ですか?
Webサイトのアプリケーションプールで間違った.NETバージョン(v4.0ではなくv2.0)が構成されていたため、このエラーが発生しました。 Windows Server 2008 R2およびIIS 7でこのように修正しました。WindowsServer 2012およびIIS 8にも手順が適用されると確信しています。
もちろん、実際に.NET v2.0が必要な古いサイトを実行している場合は適用されません:)
私の場合、ASP.NETはサーバーに登録されていません。コマンドプロンプトでこれを実行してみてください:
Windows 32ビット
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir
Windows 64ビット
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
誰かが解決策を探してここに到達した場合に備えて、ここに私がそれを解決した方法があります。誤ってサーバー(binディレクトリ)からすべてのファイルを削除しましたが、すべてのファイルをコピーしたときにApp_global.asax.dllおよびApp_global.asax.compiledファイルが見つかりませんでした。これらのファイルが欠落していたため、IISからこのエラーが発生していました。
403 - Forbidden: Access is denied.
これらのファイルを追加するとすぐに、問題なく動作し始めました。
私は2つの理由で以前同様の自分に遭遇しました。 1. MVCがインストールされていません。 2. URLルーティングモジュールが登録されていない(これは職場のマシンによって異なりますが、理由は完全には説明できません-システムレベルで常に登録されるとは限りません)、アプリケーションweb.configに登録してみてください。
<system.web>
...
<httpModules>
...
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpModules>
</system.web>
編集:iis 7+の場所を追加するのを忘れました:
<system.webServer>
<modules>
...
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</modules>
</system.webServer>
IIS 7でASP.NET 4.5 MVCアプリケーションを使用していました。私の修正は、runallmanagedmoduleをtrueに設定することでした。
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
または、他のモジュールがある場合は、モジュールタグ内に追加することができます。
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLogWeb" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
...
</modules>
</system.webServer>
このエラーは、IIS ManagerでASP.NET MVCサイトが間違ったディレクトリをポイントしている場合に発生する可能性があります。
私の場合、サイトが誤って子プロジェクトディレクトリではなくソリューションディレクトリを指していました。つまり、サイトのPhysical path
を次のように設定しました
C:\dev\MySolution
の代わりに
C:\dev\MySolution\MyProject
。
これを修正する特定の手順:
Physical path
をプロジェクトディレクトリに変更します。私はちょうど同じ問題を抱えていましたが、私の修正は、ルーティングがGlobal.asax.csファイルで構成されていなかったことです。私はBootstrapperとCastle Windsorを使用しているため、この問題を解決するために、Global.asax.csに次のコードを追加しました。
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
Bootstrapper.IncludingOnly.Assembly(Assembly.GetAssembly(typeof(WindsorRegistration)))
.With
.Windsor()
.With
.StartupTasks()
.Start();
}
}
もちろん、基本的なMVCを使用している場合は、代わりにAppStartフォルダーのRouteConfigファイルを参照する必要があります。
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
私の場合、複数のプロジェクトがありましたが、開始プロジェクトを定義していませんでした。そのため、このエラーが生成されていました。 startUpプロジェクトを定義した後、問題は解決しました。
このエラーは、アプリケーションが起動できないときに発生します。
したがって、原因は、アプリケーションの起動を妨げるものである可能性があります。
Visual Studioで空のASP.Netアプリケーションを作成した後、このエラーが発生しました。ファイルindex.htmlをメインソリューションに追加するとすぐに機能しました。そのため、私の場合は、プロジェクトフォルダーのルートにファイルを追加する必要がありました。
プロジェクトがASP.net MVCプロジェクトの場合、ルーティングに関するものになります。私の場合、デフォルトのルーティング値を変更しました:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
誤ってコードを次のように変更しました:
routes.MapRoute(
"Default",
"{controller}/{action}/{JobID}",
new { controller = "Home", action = "Index", id = "" }
);
つまり、「id」を「JobId」に変更しただけで、デフォルトルートが見つかりません。
私の場合:1. IIS Managerで、左側のツリーでコンピューター名を左クリックし、右側のダイアログでISAPIおよびCGT制限をクリックし、開いたダイアログでASP.NET v4.0.30319を選択し、有効を選択します。 32ビット用と64ビット用の2つのASP.Net v4.0があります。 OSビットに応じて選択します。 2.左側のツリーでアプリプールを選択し、右側のダイアログでWebサイトが使用したアプリプールを選択します。そのプールをダブルクリックし、開いているダイアログで、.net framke項目.net framework v.4.0.30319を選択します。そして、pipe..item select integate。私のOSは英語版ではないため、上記の翻訳が間違っている可能性があります。
私の同僚は RL Rewrite rule を作成しました。これにより、すべてのURLがStaticFileHandlerになりました。アプリケーションの物理フォルダーのルートにあるファイルパスにマップされます。
(つまり、過度に攻撃的なURL書き換えは、コントローラー/アクションが機能していなかったことを意味します)
アプリケーションのURL書き換えルールをチェックして、期待どおりに動作することを確認します。
MVC以外のプロジェクトでこれに遭遇した場合:
私のプロジェクトはWCFプロジェクトで、.svc
ファイルで実行されます。デフォルトのドキュメントはありません。その結果、myhost.com/
で403.14エラーが発生しましたが、web.configファイルからbaseAddress
パスを追加するとすぐに(例:myhost.com/mybaseaddresspath.svc
私はWebページを取得しました。
これもチェックしてください:
この問題は、Webサイトでディレクトリブラウジング機能が有効になっておらず、デフォルトのドキュメントが構成されていないために発生します。この問題を解決するには、次のいずれかの方法を使用します。
IUSR permissions
inetpub/wwwrootの下にない場合にフォルダーで使用することは、一部のソリューションです。
私の場合、index.aspxファイルはデフォルトでは作成されず、別のWebフォームを追加した後、フォームを開始ページとして設定しませんでした...ページを開始ページとして設定した後、問題が解決します。 Webフォームを右クリックして、フォームを開始ページとして設定します:)
私の場合、XMLドキュメント(XmlDocument.xml)でApp_Dataフォルダーを展開するには、公開プロファイルで「App_Dataフォルダーからファイルを除外する」を無効にする必要がありました。 403.14は削除されました。