Статические файлы IIS Express не найдены - PullRequest
0 голосов
/ 27 ноября 2018

Позвольте мне в предисловии сказать, что у меня есть опыт работы в Linux, и разработка для Windows является для меня довольно новым.

Я работаю над проектом ASP.NET, который я открыл в Visual Studio.Первоначально проект был настроен на запуск через IIS.VS услужливо спросил меня, не хочу ли я попробовать IIS Express, и я ответил да.Изначально в приложении было несколько икок, но это потому, что код старый и огромный.После решения этих проблем приложение загружается нормально, за исключением любых статических файлов.Я получаю 404 Not Found для ресурсов, которые действительно существуют в файловой системе.

Этот физический путь, который вы видите на фотографии, существует в папке рядом с файлом Web.config.Я могу загрузить файлы aspx из каталога exec, который является родственным графическим каталогом.В графическом каталоге находится файл favicon.ico, который я пытаюсь загрузить на этом рисунке.

Сегодня я прочитал много документации для IIS и IIS Express, и никто из них не упомянул о необходимости делать что-то особенное для статических файлов.Может я просто толстаяЕсли мне нужен мой Web.config, дайте мне знать, и я могу прикрепить его здесь.

IIS Express Error page

Правки:

1) Некоторый прогресс в этом.Я получаю ту же ошибку при полном IIS.Мое статическое содержимое не отображается.

2) Вот web.config по запросу

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <configSections>
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
  </configSections>
  <!--
    For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.

    The following attributes can be set on the <httpRuntime> tag.
      <system.Web>
        <httpRuntime targetFramework="4.5" />
      </system.Web>
  -->
  <loggingConfiguration name="loggingConfiguration" tracingEnabled="true" defaultCategory="General">
    <listeners>
      <add name="Event Log Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" source="Enterprise Library Logging" formatter="Text Formatter" log="" machineName="." traceOutputOptions="DateTime, Timestamp, ProcessId" />
      <add name="W3C Rolling Flat File Trace Listener" type="App.W3CLogTraceListener, App, Version=1.0.0.0, Culture=neutral" listenerDataType="App.W3CLogTraceListenerData, App, Version=0.0.0.0, Culture=neutral" fileName="appA65.log" fileHeader="date time session-id client-ip page url form-data cookie" footer="" formatter="Text Formatter" header="" rollInterval="Midnight" timeStampPattern="yyyy-MM-dd" />
    </listeners>
    <formatters>
      <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" template="{message}" name="Text Formatter" />
    </formatters>
    <logFilters>
      <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Filters.LogEnabledFilter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" enabled="false" name="Logging Enabled Filter" />
    </logFilters>
    <categorySources>
      <add switchValue="All" name="General">
        <listeners>
          <add name="W3C Rolling Flat File Trace Listener" />
        </listeners>
      </add>
    </categorySources>
    <specialSources>
      <allEvents switchValue="All" name="All Events" />
      <notProcessed switchValue="All" name="Unprocessed Category" />
      <errors switchValue="All" name="Logging Errors &amp; Warnings">
        <listeners>
          <add name="Event Log Listener" />
        </listeners>
      </errors>
    </specialSources>
  </loggingConfiguration>
  <appSettings>
    <!-- To enable or disable IETP user session management, true to enable, false to disable -->
    <add key="IetpSessionEnabled" value="false" />
    <!-- To specifies where the folder for session files -->
    <add key="IetpUserSessionServerPath" value="d:\apps\ietpusersessions" />
    <!-- To determines the duration of s user session in terms of minutes -->
    <add key="IetpUserSessionLengthInMinutes" value="600" />
    <!-- to enable/disable sending out email on exceptions, true to enable, false to disable -->
    <add key="EmailAlertEnabled" value="true" />
    <!-- the exception email alert list, seperated by comma -->
    <add key="EmailAlertToAddress" value="alice@example.com" />
    <!-- email sender address -->
    <add key="EmailAlertFromAddress" value="bob@example.com" />
    <!-- to enable or disable Pdf print, wehn set "true", all user local print requests will be -->
    <!-- processed on the server and the final PDF will be rended in browser -->
    <add key="PdfPrintEnabled" value="true" />
    <add key="PdfPrintServiceUrl" value="https://example.com/PdfPrintService/PdfPrintService/PDFPrint.aspx" />
    <add key="FooterDisclaimer" value="Footer here" />
  </appSettings>
  <system.web>
    <httpRuntime targetFramework="4.0" requestValidationMode="2.0" />
    <!-- <httpRuntime executionTimeout="300" /> -->
    <compilation debug="true" defaultLanguage="c#" targetFramework="4.5.1" />
    <customErrors defaultRedirect="~/exec/generalError.aspx" mode="Off" />
    <sessionState mode="StateServer" stateConnectionString="tcpip=localhost:42424" cookieless="false" stateNetworkTimeout="11" timeout="600" />
    <pages controlRenderingCompatibilityVersion="4.0" />
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="URLWriteHttpModule" />
      <add name="URLWriteHttpModule" type="App.URLWriteHttpModule" />
    </modules>
    <defaultDocument>
      <files>
        <clear />
        <add value="default.aspx" />
        <add value="Default.asp" />
        <add value="Default.htm" />
        <add value="index.htm" />
        <add value="index.html" />
      </files>
    </defaultDocument>
    <tracing>
      <traceFailedRequests>
        <add path="*">
          <traceAreas>
            <add provider="ASP" verbosity="Verbose" />
            <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
            <add provider="ISAPI Extension" verbosity="Verbose" />
            <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI" verbosity="Verbose" />
          </traceAreas>
          <failureDefinitions timeTaken="00:00:00" statusCodes="500-599" verbosity="Error" />
        </add>
      </traceFailedRequests>
    </tracing>
        <handlers accessPolicy="Read, Execute, Script" />
  </system.webServer>
</configuration>

Окончательное редактирование - я так и не смог выяснить, что произошлонеправильно.Повторная установка ОС исправила эту проблему, и мне больше не удавалось ее дублировать.

Ответы [ 3 ]

0 голосов
/ 07 декабря 2018

Можете ли вы попробовать добавить это?

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

Предварительные условия IIS

Вы включили статический контент в IIS?

enter image description here

  1. Проверьте ваш gloabl.asax этот тип линии существует

    rout.IgnoreRoute ("{resource} .axd / {* pathInfo}");или route.IgnoreRoute ("{ favicon}", new {favicon = @ "(. /)? favicon.ico (/.*)?" coming);

или что-то подобное

Комментарий URL переписать часть и проверить ее работоспособность?

И я полагаю, вы дважды проверьте, существует ли файл по неправильному пути:)

0 голосов
/ 07 декабря 2018

Проверьте, публикуется ли ваш статический контент через MSBuild.Если нет, добавьте эти строки в ваш файл .csproj:

<ItemGroup>
    <Content Include="graphics\**\*.*" />
</ItemGroup>
0 голосов
/ 05 декабря 2018

Ananth,

Вы включили статический контент?Посмотрите на https://forums.iis.net/t/1233905.aspx?how+to+enable+static+content+in+IIS+7+5+within+windows+server+2008+R2

...