ASP.NET веб-развертывание с помощью Visual Studio: устранение неполадок
В этой серии руководств показано, как развернуть (опубликовать) веб-приложение ASP.NET для Служба приложений Azure веб-приложения или стороннего поставщика услуг размещения с помощью Visual Studio 2012 или Visual Studio 2010. Сведения о серии см. в первом руководстве этой серии.
На этой странице описаны некоторые распространенные проблемы, которые могут возникнуть при развертывании веб-приложения ASP.NET с помощью Visual Studio. Для каждой из них предоставляются одна или несколько возможных причин и соответствующие решения.
Приведенные сценарии относятся как к Azure, так и к сторонним поставщикам услуг размещения. Дополнительную информацию об устранении неполадок, связанных с веб-приложениями в службе приложений Azure, см. на следующих ресурсах:
- Устранение неполадок веб-приложения в службе приложений Azure с помощью Visual Studio
- Мониторинг веб-приложений в службе приложений Azure
- Объявление о выпуске windows Azure SDK 2.0 для .NET (в блоге ScottGu показано, как получить журналы диагностики в Visual Studio)
Ошибка сервера в приложении "/" — параметры текущей пользовательской ошибки: запрет удаленного просмотра сведений об ошибке
Сценарий
После развертывания сайта на удаленном узле появляется сообщение об ошибке, в котором упоминается параметр customErrors в файле Web.config, но не указывается фактическая причина ошибки:
Server Error in '/' Application.
Runtime Error
Description: An application error occurred on the server. The current custom error settings
for this application prevent the details of the application error from being viewed remotely
(for security reasons). It could, however, be viewed by browsers running on the local server
machine.
Details: To enable the details of this specific error message to be viewable on remote machines,
please create a <customErrors> tag within a "web.config" configuration file located in the
root directory of the current web application. This <customErrors> tag should then have its
"mode" attribute set to "Off".
Возможные причины и решение
По умолчанию ASP.NET отображает подробные сведения об ошибке, только если веб-приложение запущено на локальном компьютере. Как правило, вы не хотите отображать подробные сведения об ошибках, когда веб-приложение является общедоступным через Интернет, так как злоумышленники могут использовать эти сведения для поиска уязвимостей в приложении. Однако при развертывании сайта или обновлений на сайте иногда что-то пойдет не так, и вам нужно получить фактическое сообщение об ошибке.
Чтобы позволить приложению отображать подробные сообщения об ошибках при запуске на удаленном узле, измените файл Web.config, чтобы отключить режим customErrors, повторно разверните приложение и запустите приложение еще раз:
Если файл Web.config приложения содержит элемент customErrors в элементе system.web, измените атрибут mode на "off". В противном случае добавьте элемент customErrors в элемент system.web с атрибутом mode, равным off, как показано в следующем примере:
<configuration> <system.web> <customErrors mode="off"/> </system.web> </configuration>
Разверните приложения.
Запустите приложение и повторите то, что вы сделали ранее, что вызвало ошибку. Теперь вы можете увидеть фактическое сообщение об ошибке.
Устранив ошибку, восстановите исходный параметр customErrors и повторно разверните приложение.
Не удается создать или теневое копирование ContosoUniversity, если этот файл уже существует.
Сценарий
При попытке запустить проект в Visual Studio появляется страница ошибки с сообщением, как показано в следующем примере:
Ошибка сервера в приложении «/». Не удается создать или теневое копирование ContosoUniversity, если этот файл уже существует.
Возможные причины и решение
Подождите минуту и обновите браузер или перекомпилируйте сайт и попробуйте запустить его снова.
Доступ запрещен на веб-странице, которая использует SQL Server Compact
Сценарий
При развертывании сайта, использующего SQL Server Compact, и запуске страницы на развернутом сайте, который обращается к базе данных, отображается следующее сообщение об ошибке:
Отказано в доступе". (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))
Возможные причины и решение
Учетная запись NETWORK SERVICE на сервере должна иметь возможность читать собственные двоичные файлы SQL Service Compact, которые находятся в папке bin\amd64 или bin\x86 , но у нее нет разрешений на чтение для этих папок. Задайте разрешение на чтение для NETWORK SERVICE в папке bin , обязательно расширив разрешения на вложенные папки.
Не удается прочитать файл конфигурации из-за недостаточных разрешений
Сценарий
Если нажать кнопку Публикации Visual Studio, чтобы развернуть приложение в IIS на локальном компьютере, публикация завершается ошибкой, а в окне Выходные данные отображается следующее сообщение об ошибке:
Произошла ошибка при чтении файла конфигурации IIS "MACHINE/REDIRECTION". Удостоверение, выполняющее эту операцию, было ... Ошибка: не удается прочитать файл конфигурации из-за недостаточных разрешений.
Возможные причины и решение
Чтобы использовать функцию публикации одним щелчком в IIS на локальном компьютере, необходимо запустить Visual Studio с разрешениями администратора. Закройте Visual Studio и перезапустите ее с разрешениями администратора.
Не удалось подключиться к конечному компьютеру... Использование указанного процесса
Сценарий
При нажатии кнопки Публикации Visual Studio для развертывания приложения публикация завершается сбоем, а в окне Выходные данные отображается сообщение об ошибке, похожее на следующее:
Web deployment task failed.(Could not connect to the destination computer ("<server URL>") using the specified process
("The Web Management Service"). This can happen if a proxy server is interrupting communication with the destination server.
Disable the proxy server and try again.) ... The remote server returned an error: (502) Bad Gateway.
Возможные причины и решение
Прокси-сервер прерывает связь с целевым сервером. На панель управления Windows или в internet Обозреватель выберите Свойства браузера и перейдите на вкладку Подключения. В диалоговом окне Свойства интернета щелкните Параметры локальной сети. В диалоговом окне Параметры локальной сети снимите флажок Автоматически определять параметры . Нажмите кнопку публикации еще раз.
Если проблема не исчезнет, обратитесь к системному администратору, чтобы определить, что можно сделать с параметрами прокси-сервера или брандмауэра. Проблема возникает из-за того, что веб-развертывание использует нестандартный порт для развертывания службы веб-управления (8172); Для других подключений веб-развертывание использует порт 80. При развертывании у стороннего поставщика услуг размещения обычно используется служба веб-управления.
Пул приложений .NET 4.0 по умолчанию не существует
Сценарий
При развертывании приложения, которому требуется платформа .NET Framework 4, отображается следующее сообщение об ошибке:
Пул приложений .NET 4.0 по умолчанию не существует или не удалось добавить приложение. Убедитесь, что на этом компьютере установлена ASP.NET 4.0.
Возможные причины и решение
ASP.NET 4 не установлен в IIS. Если сервер, на котором выполняется развертывание, является компьютером разработки и на нем установлена Среда Visual Studio 2010, ASP.NET 4 установлена на компьютере, но может не быть установлена в IIS. На сервере, на котором выполняется развертывание, откройте командную строку с повышенными привилегиями и установите ASP.NET 4 в IIS, выполнив следующие команды:
cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –iru
Кроме того, может потребоваться вручную задать версию платформа .NET Framework пула приложений по умолчанию. Дополнительные сведения см. в руководстве по развертыванию в IIS в качестве тестовой среды этой серии.
Формат строки инициализации не соответствует спецификации, начиная с индекса 0.
Сценарий
После развертывания приложения с помощью публикации одним щелчком при запуске страницы, которая обращается к базе данных, появляется следующее сообщение об ошибке:
Формат строки инициализации не соответствует спецификации, начиная с индекса 0.
Возможные причины и решение
Откройте файлWeb.config на развернутом сайте и проверка, чтобы узнать, начинаются ли значения строки подключения с $(ReplaceableToken_
, как показано в следующем примере:
<connectionStrings>
<add name="DefaultConnection" connectionString="$(ReplaceableToken_DefaultConnection-Web.config Connection String_0)" providerName="System.Data.SqlServerCe.4.0" />
<add name="SchoolContext" connectionString="$(ReplaceableToken_SchoolContext-Web.config Connection String_0)" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
Если строки подключения выглядят как в этом примере, измените файл проекта и добавьте следующее свойство в элемент PropertyGroup, который предназначен для всех конфигураций сборки:
<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>
Затем повторно разверните приложение.
Внутренняя ошибка сервера HTTP 500
Сценарий
При запуске развернутого сайта отображается следующее сообщение об ошибке без конкретных сведений, указывающих причину ошибки:
Ошибка HTTP 500 — внутренняя ошибка сервера.
Возможные причины и решение
Существует множество причин ошибок 500, но одна из возможных причин, если вы выполняете эти руководства, заключается в том, что вы поместили XML-элемент в неправильное место в одном из файлов преобразования Web.config. Например, эта ошибка возникает, если поместить преобразование, которое вставляет <элемент location> в <system.web> , а не непосредственно в <конфигурацию>. Вы можете использовать функцию предварительной версии Web.config преобразования, чтобы убедиться, что преобразования работают должным образом. Если вы обнаружите преобразование, которое было закодировано неправильно, можно исправить файл преобразования и повторно развернуть его. Если ошибка не очевидна, попробуйте закомментировать преобразования и повторно развернуть, чтобы узнать, какая из них вызывает ошибку 500.
Внутренняя ошибка сервера HTTP 500.21
Сценарий
При запуске развернутого сайта отображается следующее сообщение об ошибке:
Ошибка HTTP 500.21 — внутренняя ошибка сервера. Обработчик PageHandlerFactory-Integrated содержит недопустимый модуль ManagedPipelineHandler в списке модулей.
Возможные причины и решение
Развернутый сайт предназначен ASP.NET 4, но ASP.NET 4 не зарегистрирован в службах IIS на сервере. На сервере откройте командную строку с повышенными привилегиями и зарегистрируйте ASP.NET 4, выполнив следующие команды:
cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –iru
Кроме того, может потребоваться вручную задать версию платформа .NET Framework пула приложений по умолчанию. Дополнительные сведения см. в руководстве по развертыванию в IIS в качестве тестовой среды этой серии.
Не удалось открыть базу данных SQL Server Express в App_Data
Сценарий
Вы обновили строку подключения к файлуWeb.config, чтобы она указывала на базу данных SQL Server Express в виде MDF-файла в папке App_Data, и при первом запуске приложения отображается следующее сообщение об ошибке:
System.Data.SqlClient.SqlException: не удается открыть базу данных DatabaseName, запрошенную именем входа. Не удалось выполнить вход.
Возможные причины и решение
Имя MDF-файла не может совпадать с именем любой SQL Server Express базы данных, которая когда-либо существовала на компьютере, даже если вы удалили MDF-файл ранее существующей базы данных. Измените имя MDF-файла на имя, которое никогда не использовалось в качестве имени базы данных, и измените файлWeb.config на новое имя. В качестве альтернативы можно использовать SQL Server Management Studio Express для удаления ранее существующих баз данных SQL Server Express.
Невозможно проверить совместимость моделей
Сценарий
Вы обновили строку подключения к файлуWeb.config, указав новую SQL Server Express базу данных, и при первом запуске приложения отображается следующее сообщение об ошибке:
Невозможно проверить совместимость моделей, так как база данных не содержит метаданные модели. Убедитесь, что IncludeMetadataConvention добавлен в соглашения DbModelBuilder.
Возможные причины и решение
Если имя базы данных, помещенное в файл Web.config, использовалось ранее на компьютере, возможно, база данных уже существует с некоторыми таблицами в ней. Выберите новое имя, которое ранее не использовалось на компьютере, и измените файлWeb.config , чтобы он указывал на использование этого нового имени базы данных. В качестве альтернативы можно использовать программу SQL Server Express или SQL Server Management Studio Express для удаления существующей базы данных.
Ошибка SQL при попытке скрипта создать пользователей или роли
Сценарий
Вы используете развертывание базы данных, настроенное на вкладке Пакет или публикация SQL . Скрипты SQL, выполняемые во время развертывания, включают команды Create User или Create Role, а выполнение скрипта завершается сбоем при выполнении этих команд. Могут отображаться более подробные сообщения, например:
The approximate location of the error was between lines '1' and '3' of the script.
The verbose log may have more information about the error. The command started with:
CREATE USER [user2] FOR LOGIN [user2] WITH DEFAULT
Error: User does not have permission to perform this action.
Если эта ошибка возникает при настройке развертывания базы данных в мастере публикации веб-сайта , а не на вкладке Пакет или публикация SQL , создайте поток на форуме по настройке и развертыванию , и решение будет добавлено на эту страницу устранения неполадок.
Возможные причины и решение
Учетная запись пользователя, используемая для выполнения развертывания, не имеет разрешения на создание пользователей или ролей. Например, хостинговая компания может назначить роли db_datareader, db_datawriter и db_ddladmin учетной записи пользователя, которую она настраивает для вас. Их достаточно для создания большинства объектов базы данных, но не для создания пользователей или ролей. Один из способов избежать этой ошибки — исключить пользователей и роли из развертывания базы данных. Это можно сделать, изменив элемент PreSource для автоматически создаваемого скрипта базы данных, чтобы он был включен в следующие атрибуты:
CopyAllUsers=false, CopyAllRoles=false
Сведения об изменении элемента PreSource в файле проекта см. в разделе Практическое руководство. Изменение параметров развертывания в файле проекта. Если пользователи или роли в базе данных разработки должны находиться в целевой базе данных, обратитесь за помощью к поставщику услуг размещения.
SQL Server ошибка времени ожидания при выполнении пользовательских скриптов во время развертывания
Сценарий
Вы указали пользовательские скрипты SQL для выполнения во время развертывания, а при выполнении веб-развертывания они истекают.
Возможные причины и решение
Выполнение нескольких скриптов с разными режимами транзакций может привести к ошибкам времени ожидания. По умолчанию автоматически созданные скрипты выполняются в транзакции, но пользовательские скрипты — нет. Если выбрать параметр Извлечь данные и (или) схему из существующей базы данных на вкладке Пакет или публикация SQL и добавить пользовательский скрипт SQL, необходимо изменить параметры транзакций в некоторых сценариях, чтобы все скрипты использовали одинаковые параметры транзакций. Дополнительные сведения см. в разделе Практическое руководство. Развертывание базы данных с помощью проекта веб-приложения.
Если вы настроили параметры транзакции так, чтобы все были одинаковыми, но по-прежнему получаете эту ошибку, возможно, обходной путь — запустить скрипты отдельно. В сетке Скрипты базы данных на вкладке Пакет/публикация SQL снимите флажок Включить проверка для скрипта, который вызывает ошибку времени ожидания, а затем опубликуйте проект. Затем вернитесь в сетку Скрипты базы данных, выберите поле Включить проверка этого скрипта и снимите флажки Включить проверка для других скриптов. Затем опубликуйте проект еще раз. На этот раз при публикации выполняется только выбранный пользовательский скрипт.
Поток данных манифеста сайта пока недоступен
Сценарий
При установке пакета с помощью файла deploy.cmd с параметром t (test) отображается следующее сообщение об ошибке:
Ошибка. Потоковые данные sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript пока недоступны.
Возможные причины и решение
Сообщение об ошибке означает, что команда не может создать тестовый отчет. Однако команда может выполняться при использовании параметра y (фактическая установка). Сообщение указывает только на то, что возникла проблема с выполнением команды в тестовом режиме.
Для этого приложения требуется ManagedRuntimeVersion версии 4.0
Сценарий
При попытке развертывания отображается следующее сообщение об ошибке:
Для пула приложений, который вы пытаетесь использовать, свойство managedRuntimeVersion имеет значение v2.0. Для этого приложения требуется версия 4.0.
Возможные причины и решение
ASP.NET 4 не установлен в IIS. Если сервер, на котором выполняется развертывание, является компьютером разработки и на нем установлена Среда Visual Studio 2010, ASP.NET 4 установлена на компьютере, но может не быть установлена в IIS. На сервере, на котором выполняется развертывание, откройте командную строку с повышенными привилегиями и установите ASP.NET 4 в IIS, выполнив следующие команды:
cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –i
Не удается привести Microsoft.Web.Deployment.DeploymentProviderOptions
Сценарий
При развертывании пакета отображается следующее сообщение об ошибке:
Не удалось привести объект типа Microsoft.Web.Deployment.DeploymentProviderOptions к Microsoft.Web.Deployment.DeploymentProviderOptions.
Возможные причины и решение
Вы пытаетесь выполнить развертывание из диспетчера IIS с помощью пользовательского интерфейса веб-развертывания 1.1 на сервере с установленным веб-развертыванием 2.0. Если вы используете средство удаленного администрирования IIS для развертывания путем импорта пакета, проверка диалоговое окно Доступные новые функции при установке подключения. (Это диалоговое окно может отображаться только один раз при первой установке подключения. Чтобы очистить подключение и начать заново, закройте диспетчер IIS и снова запустите его, введя inetmgr /reset в командной строке.) Если один из перечисленных компонентов — пользовательский интерфейс веб-развертывания и имеет номер версии ниже 8, на сервере, на котором выполняется развертывание, могут быть установлены версии веб-развертывания 1.1 и 2.0. Чтобы выполнить развертывание с клиента, на котором установлена версия 2.0, на сервере должна быть установлена только веб-развертывание 2.0. Чтобы устранить эту проблему, необходимо обратиться к поставщику услуг размещения.
Не удается загрузить собственные компоненты SQL Server Compact
Сценарий
При запуске развернутого сайта отображается следующее сообщение об ошибке:
Не удается загрузить собственные компоненты SQL Server Compact, соответствующие поставщику ADO.NET версии 8482. Установите правильную версию SQL Server Compact. Дополнительные сведения см. в статье базы знаний 974247.
Возможные причины и решение
Развернутый сайт не содержит вложенных папок amd64 и x86 с собственными сборками в папке bin приложения. На компьютере с установленными SQL Server Compact собственные сборки находятся в папке C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private. Лучший способ получить правильные файлы в нужные папки в проекте Visual Studio — установить пакет NuGet SqlServerCompact. Установка пакета добавляет скрипт после сборки для копирования собственных сборок в amd64 и x86. Однако для их развертывания необходимо вручную включить их в проект. Дополнительные сведения см. в руководстве по развертыванию SQL Server Compact.
Ошибка "Путь недействителен" после развертывания приложения Entity Framework Code First
Сценарий
Вы развертываете приложение, использующее Entity Framework Code First Migrations, и СУБД, например SQL Server Compact которая хранит свою базу данных в файле в папке App_Data. Вы Code First Migrations настроили создание базы данных после первого развертывания. При запуске приложения появляется сообщение об ошибке, как показано в следующем примере:
Недопустимый путь. Проверьте каталог базы данных. [Path = c:\inetpub\wwwroot\App_Data\DatabaseName.sdf ]
Возможные причины и решение
Code First пытается создать базу данных, но папка App_Data не существует. Либо у вас не было файлов в папке App_Data при развертывании, либо вы выбрали пункт Исключить App_Data на вкладке Веб-пакет/публикация окно свойств Проекта. Процесс развертывания не создаст папку на сервере, если в папке нет файлов, которые необходимо скопировать на сервер. Если база данных уже настроена на сайте, процесс развертывания удалит файлы и саму папку App_Data , если вы выбрали Удалить дополнительные файлы в месте назначения в профиле публикации. Чтобы устранить эту проблему, поместите файл заполнителя, например файл .txt, в папку App_Data , убедитесь, что выбран параметр Исключить App_Data , и повторно разверните его.
"COM-объект, который был отделен от базового RCW, не может быть использован".
Сценарий
Вы успешно использовали публикацию одним щелчком для развертывания приложения, а затем начали получать следующее сообщение об ошибке:
Задача веб-развертывания завершилась сбоем. (Не удалось выполнить запрос к URL-адресу удаленного агента "<https://serverurl.com/msdeploy.axd?site=sitename>
".)
Не удалось выполнить запрос на URL-адрес удаленного агента "<https://url/msdeploy.axd?site=sitename>
".
Запрос был прерван: запрос был отменен.
Com-объект, который был отделен от базового RCW, не может использоваться.
Возможная причина и решение
Для устранения этой ошибки обычно требуется закрыть и перезапустить Visual Studio.
Сбой развертывания, так как учетные данные пользователя, используемые для публикации, не имеют центра setACL
Сценарий
Публикация завершается ошибкой, указывающей на то, что у вас нет полномочий на настройку разрешений для папки (у учетной записи пользователя, которую вы используете, нет центра setACL).
Возможная причина и решение
По умолчанию Visual Studio задает разрешения на чтение в корневой папке сайта и разрешения на запись в папке App_Data. Если вы знаете, что разрешения по умолчанию для папок сайта правильные и их не нужно задавать, отключите это поведение, добавив <IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> в файл профиля публикации (чтобы повлиять на один профиль) или в файл wpp.targets (чтобы повлиять на все профили). Сведения об изменении этих файлов см. в разделе Практическое руководство. Изменение параметров развертывания в файлах профиля (PUBXML).
Ошибки отказа в доступе, когда приложение пытается выполнить запись в папку приложения
Сценарий
Приложение получает ошибки при попытке создать или изменить файл в одной из папок приложения, так как оно не имеет полномочий записи для этой папки.
Возможная причина и решение
По умолчанию Visual Studio задает разрешения на чтение в корневой папке сайта и разрешения на запись в папке App_Data. Если приложению требуется доступ на запись во вложенную папку, можно задать разрешения для этой папки, как показано в руководствах по настройке разрешений для папок и развертыванию в рабочей среде этой серии. Если приложению требуется доступ на запись в корневую папку сайта, необходимо запретить ему настроить доступ только для чтения в корневой папке, добавив <IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> в файл профиля публикации (чтобы повлиять на один профиль) или в файл wpp.targets (для влияния на все профили). Сведения об изменении этих файлов см. в разделе Практическое руководство. Изменение параметров развертывания в файлах профиля (PUBXML).
Ошибка конфигурации. Атрибут targetFramework ссылается на версию, которая выше установленной версии платформа .NET Framework
Сценарий
Вы успешно опубликовали веб-проект, предназначенный для ASP.NET 4.5, но при запуске приложения (с режимом customErrors в Web.config файле выдается следующая ошибка:
Атрибут targetFramework в элементе <компиляции> файла Web.config используется только для целевой версии 4.0 и более поздних версий платформа .NET Framework (например, "<компиляция targetFramework="4.0">"). Атрибут targetFramework в настоящее время ссылается на версию, которая выше установленной версии платформа .NET Framework. Укажите допустимую целевую версию платформа .NET Framework или установите требуемую версию платформа .NET Framework.
В поле Ошибка источника на странице ошибки в качестве причины ошибки выделяется следующая строка из Web.config:
<компиляция targetFramework="4.5" />
Возможная причина и решение
Сервер не поддерживает ASP.NET 4.5. Обратитесь к поставщику услуг размещения, чтобы определить, когда и если можно добавить поддержку ASP.NET 4.5. Если обновление сервера невозможно, необходимо развернуть веб-проект, предназначенный ASP.NET 4 или более ранней версии.
Если вы развертываете веб-проект ASP.NET 4 или более ранней версии в том же месте назначения, установите флажок Удалить дополнительные файлы в целевом проверка на вкладке Параметры мастера публикации веб-страницы. Если не выбрать удалить дополнительные файлы в месте назначения, вы по-прежнему будете получать страницу Ошибка конфигурации.
Окна свойств проекта содержат раскрывающийся список Целевая платформа, но вы не можете устранить эту проблему, просто изменив ее с платформа .NET Framework 4.5 на платформа .NET Framework 4. Если вы измените целевую платформу на более раннюю версию, проект по-прежнему будет иметь ссылки на сборки более поздней версии платформы и не будет выполняться. Необходимо вручную изменить эти ссылки или создать проект, предназначенный платформа .NET Framework 4 или более ранней версии. Дополнительные сведения см. в разделе платформа .NET Framework Нацеливание на веб-сайты.
Ошибки среднего доверия
Сценарий
При запуске приложения в рабочей среде возникает ошибка, связанная со средним уровнем доверия.
Возможная причина и решение
Многие сторонние поставщики услуг размещения работают с веб-сайтом со средним уровнем доверия, что означает, что некоторые действия запрещены. Например, код приложения не может получить доступ к реестру Windows и не может читать или записывать файлы, которые находятся за пределами иерархии папок приложения. По умолчанию приложение выполняется в режиме полного доверия на локальном компьютере, что означает, что приложение может выполнять действия, которые могут завершиться сбоем при его развертывании в рабочей среде.
Чтобы устранить неполадки, вы можете настроить приложение для запуска в локальной среде IIS со средним уровнем доверия. Для этого откройте файл Web.config приложения и добавьте элемент trust в элемент system.web , как показано в этом примере.
<configuration>
<!-- Settings -->
<system.web>
<trust level="Medium" />
<!-- Settings -->
</system.web>
</configuration>
Теперь приложение будет работать в службах IIS со средним уровнем доверия даже на локальном компьютере.
Не выполняйте этого при развертывании в Служба приложений Azure, так как Azure не требует среднего доверия. На момент написания этого руководства в феврале 2012 г. использование этого метода для запуска приложения со средним уровнем доверия приведет к ошибке в Azure.
Если вы используете Entity Framework Code First Migrations и выполняете развертывание в поставщике услуг размещения, который запускает приложение со средним уровнем доверия, убедитесь, что у вас установлена версия 5.0 или более поздняя. В Entity Framework версии 4.3 для миграции требуется полное доверие для обновления схемы базы данных.
Ошибка HTTP 404.17 "Не найдено"
Сценарий
При запуске развернутого сайта на компьютере разработки в СЛУЖБАх IIS отображается следующее сообщение об ошибке, сообщающее о том, что сервер не может обработать Default.aspx:
Ошибка HTTP 404.17 — не найдено
Запрошенный контент представляется скриптом и не будет обслуживаться обработчиком статических файлов.
Возможная причина и решение
ASP.NET 4.5 может не быть установлено на компьютере. Инструкции по установке ASP.NET 4.5 см. в руководстве по развертыванию в службах IIS в качестве тестовой среды в этой серии.