Ошибка: ресурс, который вы ищете, был удален, изменилось его имя или временно недоступен
Отключить почти каждый развернутый мной веб-сайт / API-сервис / мобильный сервис. Когда я нажимаю на любой маршрут, отличный от маршрута по умолчанию, я получаю следующую ошибку: "Ресурс, который вы ищете, был удален, изменилось его имя или временно недоступен".
Для тестирования я создал простое приложение ASP.Net WebAPI и веб-сайт ASP.Net MVC и развернул его в Azure. Он развертывается и появляются страницы по умолчанию. Для любой ссылки после этого я получаю эту ошибку.
Ниже представлен мобильный сервис. Созданный и загруженный без изменений и настроенный для аутентификации facebook на portal.azure.com https://wayweb.azurewebsites.net/.auth/login/facebook/callback
Копия кода находится по адресу https://1drv.ms/u/s!AkQ9G9AdaYOPgaZ-vXUdlSW9RuQzOQ
Есть идеи, что я делаю не так?
9 ответов
Это может помочь:
Чтобы устранить проблему, вам нужно предоставить файл web.config в ваше приложение Angular 2.
Добавьте файл web.config в каталог Azure. Добавьте код ниже в это.
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Main Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Если вы не можете открыть файл json или любой другой файл, даже если он существует, попробуйте добавить:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".woff2" mimeType="application/x-font-woff" />
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
Я попробовал все вышеперечисленные варианты, но ни один из них не смог решить мою проблему.
Я решил это, добавив файл web.config в свой
src
папку и вставив ее из
package.json
файл.
"tsConfig": "tsconfig.app.json",
"aot": true,
"assets": [
"src/favicon.ico",
"src/assets",
**"src/web.config"**
],
Аудит безопасности - мой аудитор безопасности попросил меня удалить
Физический путь C:\Users\Dell\Documents\Development\WebServicePortal\PyWebServicePortal\Dashboard\DashboardView\robots.txt
Я получал 404 (ресурс, который вы ищете, был удален, его имя было изменено или он временно недоступен). Я хотел использовать пользовательскую ошибку, если код ресурса найден. Я использовал следующий код:
<httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="File" >
<remove statusCode="404"/>
<error statusCode="404" path="ErrorPages/Oops.html" />
</httpErrors>
Для меня эта ошибка возникла, когда я сделал runAllManagedModulesForAllRequests="false"
<modules runAllManagedModulesForAllRequests="true">
<add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule" />
<remove name="FormsAuthentication" />
<remove name="DefaultAuthentication" />
<remove name="OutputCache" />
<remove name="AnonymousIdentification" />
<remove name="RoleManager" />
</modules>
Это та же ошибка сообщения, связанная с проблемой с версиями System.Net.Http.dll, System.Net.Http.Formating.dll и System.Net.Http.WebRequest.dll. Я исправил эту публикацию этих сборок в папке bin моего веб-API Azure, хотя они должны были использоваться из глобального кэша. Подробности в ASP Web API не работают в Azure.
Та же ошибка выдавалась для нашего приложения ASP.Net MVC, все было настроено в IIS, но, к сожалению, безуспешно. Мы просто изменили имя «URL-адрес проекта» на PIDWeb вместо PID.Web в свойствах веб-приложения в разделе «Интернет» и в подразделе «Серверы» и нажали «Создать виртуальный каталог». И, что удивительно, это сработало.
Однако точка не поддерживается!
Чтобы решить эту проблему, добавьте файл web.config в папку src (корневой каталог) со следующим кодом.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="AngularJS" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
<add input="{REQUEST_URI}" pattern="^/help" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
в приведенном выше коде путь API очень важен. Это может отличаться в зависимости от структуры папок на вашем сервере.
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
В моем случае у нас есть имя папки «PublishAPI», и внутри этой папки мы сохранили все развернутые .dll. Поэтому в моих случаях путь должен быть таким, как показано ниже.
<add input="{REQUEST_URI}" pattern="^/PublishAPI/(api)" negate="true" />