0

Visual Studio 2010 と IIS 7 を使用して MVC 3 プロジェクトを作成しました。プロジェクトを IIS に展開した後、ドメイン アドレスを使用して Web サイトに正常にアクセスできますが、テキストはブラウザーに表示されますが、画像、スタイル シートなどは表示されません。ブラウザで画像の 1 つを右クリックして新しいタブで開くと、サイトからログイン ページにリダイレクトされます。匿名ユーザーが表示できるように、コンテンツ/画像フォルダーへのアクセスを許可する必要があるかどうか疑問に思っていましたか? それともIIS 7と関係がありますか?

次のように画像を読み込んでいます

<img src="@Url.Content("~/Content/images/image.gif")" width="413" height="220" alt="First Image" /></div>

これは私のプロジェクト web.config です

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
<connectionStrings>
<remove name="LocalSqlServer" />
<add connectionString="Server=XXXX;Database=XXXX;User ID=XXXX;Password=XXXX" name="ApplicationServices" providerName="System.Data.SqlClient" />
<add connectionString="Server=XXXX;Database=XXXX;User ID=XXXX;Password=XXXX" name="LocalSqlServer" providerName="System.Data.SqlClient" />
</connectionStrings>

 <appSettings>
  <add key="webpages:Version" value="1.0.0.0" />
  <add key="ClientValidationEnabled" value="true" />
 <add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>

<system.web>
  <customErrors mode="Off" />
  <compilation debug="true" targetFramework="4.0">
    <assemblies>
      <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

<membership>
  <providers>
    <clear />
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
  </providers>
</membership>

<profile>
  <providers>
    <clear />
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
  </providers>
</profile>

<roleManager enabled="false">
  <providers>
    <clear />
    <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
    <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
  </providers>
</roleManager>

<pages>
  <namespaces>
    <add namespace="System.Web.Helpers" />
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />
    <add namespace="System.Web.WebPages" />
  </namespaces>
</pages>
    <authorization>
        <allow users="?" />
        <allow users=".\johnsmith" />
    </authorization>
</system.web>

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
    <security>
        <authorization>
            <add accessType="Allow" users="?" />
        </authorization>
    </security>
</system.webServer>

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
  </dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

ありがとう、Y_Y

4

1 に答える 1

1

おそらく意図したとおりに、Contentフォルダは公開されていません。アクセスを許可するには、 Contentフォルダーにweb.configファイルを追加し、適切に構成します。または、プライマリを再構成します。web.config


実行時に、許可モジュールは、許可モジュールが特定のユーザーアカウントに適合する最初のアクセスルールを見つけるまで、最もローカルな構成ファイルから開始して、許可要素と拒否要素を繰り返します。次に、許可モジュールは、最初に検出されたアクセスルールが許可ルールか拒否ルールかに応じて、URLリソースへのアクセスを許可または拒否します。デフォルトの許可規則はです。したがって、デフォルトでは、特に設定されていない限り、アクセスが許可されます。

于 2012-05-21T03:05:14.707 に答える