Прочитать на английском

Поделиться через


Файл сведений для Web Matrix и выпуска бета-версии 3 веб-страниц ASP.NET (Razor)

Файл сведений для Web Matrix и выпуска бета-версии 3 веб-страниц ASP.NET (Razor)

9 ноября 2010 г.

Содержимое

Обзор

Бета-версия Microsoft WebMatrix — это бесплатный стек веб-разработки, который устанавливается в минутах. Он интегрирует веб-сервер с базами данных и платформами программирования для создания единого интегрированного интерфейса. С помощью WebMatrix Beta можно оптимизировать способ написания кода, тестирования и публикации собственного веб-сайта ASP.NET или PHP или использовать веб-сайт WebMatrix Beta для запуска нового веб-сайта с помощью популярных приложений с открытым исходным кодом, таких как DotNetNuke, Umbraco, WordPress или Online. WebMatrix Beta использует тот же мощный веб-сервер, ядро СУБД и среду платформ, которая будет запускать веб-сайт в Интернете, что делает переход от разработки к рабочей и простой.

Установка

Примечание

WebMatrix больше не рекомендуется в качестве интегрированной среды разработки для веб-страницы ASP.NET. Используйте Visual Studio или Visual Studio Code.

Если во время установки возникли проблемы, обратитесь к разделу "Устранение неполадок с установщиком веб-платформа Майкрософт".

Инструкции по публикации приложений

Пошаговые инструкции по публикации приложений

Новые функции, изменения и проблемы с Known

Установка WebMatrix Beta 3

Проблема. Бета-версия WebMatrix 3 доступна только на платформах, поддерживающих Microsoft платформа .NET Framework 4

Для бета-версии WebMatrix требуется платформа .NET Framework версии 4. В некоторых случаях установщик Бета-версии WebMatrix позволит вам попытаться установить на платформе, которая не входит в поддерживаемый набор конфигураций. В частности, Windows Vista без обновления с пакетом обновления 1 (SP1) позволит начать установку WebMatrix Beta, но компонент платформа .NET Framework 4 завершится ошибкой и заблокировать установку.

Обходное решение
Установите на поддерживаемую платформу, которая включает в себя:

  • Windows 7
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Vista с пакетом обновления 1 (SP1) или выше
  • Windows XP с пакетом обновления 3 (SP3)
  • Windows Server 2003 SP2

Проблема. Не удается установить webMatrix Beta 3, если Microsoft Visual Studio 2008 установлена без Microsoft Visual Studio 2008 с пакетом обновления 1 (SP1)

Обходное решение
Установите Microsoft Visual Studio 2008 с пакетом обновления 1 (SP1 ) из Центра загрузки Майкрософт.

Проблема. Некоторые сборки для SQL Server Compact 4.0 не установлены в GAC

Управляемые сборки для SQL Server Compact 4.0 не помещаются в глобальный кэш сборок (GAC) при установке SQL Server Compact 4.0 на 64-разрядном компьютере, а компьютер имеет только платформа .NET Framework 3.5 с пакетом обновления 1 (SP1). Управляемые сборки, которые не установлены в GAC, являются следующими:

  • System.Data.SqlServerCe.dll (поставщик ADO.NET)
  • System.Data.SqlServerCe.Entity.dll (ADO.NET Entity Framework)

Обходное решение
Удалите SQL Server Compact 4.0. Скачайте и установите полную версию платформа .NET Framework 3.5 с пакетом обновления 1 (SP1) из следующего расположения:

Microsoft платформа .NET Framework 3.5 с пакетом обновления 1 (полный пакет)

Затем переустановите SQL Server Compact 4.0.

Проблема. Не удается удалить SQL Server Compact с помощью командной строки

Удаление SQL Server Compact с помощью параметров командной строки не работает в этом выпуске.

Обходное решение
Используйте программы и компоненты в Windows панель управления для удаления Microsoft SQL Server Compact 4.0.

Веб-страницы ASP.NET

В этом разделе документа описываются новые функции, изменения и известные проблемы с выпуском бета-версии 3 веб-страницы ASP.NET с синтаксисом Razor.

Новые функции в бета-версии 3 для веб-страницы ASP.NET с синтаксисом Razor

Новое: метод Html.Raw отображает незакодированную разметку

Новый Html.Raw метод позволяет отображать разметку HTML в виде разметки вместо вывода в кодировке отрисовки. (По умолчанию ASP.NET Razor кодирует строки перед их отрисовкой.) Синтаксис:

Html.Raw(value)

В следующем примере показано использование Html.Raw.

@* Inserts literal markup into the page as specified in the value string. *@
@Html.Raw("<div>Hello <em>world</em>!</div>")

Изменения в бета-версии 3 для веб-страницы ASP.NET с синтаксисом Razor

Изменение: метод HrefAttribute удален

HrefAttribute Метод WebPage класса был удален. Этот вспомогательный метод использовался для кодирования небезопасных символов в URL-адресах. Больше не требуется, так как ASP.NET Razor автоматически кодирует строки. (Используйте новый Html.Raw метод для отрисовки незакодированных строк.)

Изменение: синтаксис для декларативных вспомогательных элементов "@helper" изменен

В выпуске бета-версии 3 ASP.NET изменить способ анализа вспомогательных средств, созданных с помощью синтаксиса @helper . По сути, @helper синтаксис теперь анализируется как блок кода, а не как блок разметки, который может включать код. Поэтому код внутри вспомогательного элемента не должен быть заключен в @{ } блоки. И наоборот, разметка внутри вспомогательного элемента должна быть явно включена в ЭЛЕМЕНТЫ HTML или в ASP.NET тегах Razor <text></text> .

Например, следующий @helper синтаксис работает в выпуске Beta 3:

@helper ThumbnailLink(string imagePath, int width, int height) {
    @{
        string newFileName = "";
        WebImage thumbnail = new WebImage(imagePath);
        if(thumbnail != null){
           thumbnail.Resize(width, height, true, true);
           newFileName = @"~\thumb_" + Path.GetFileName(thumbnail.FileName);
           thumbnail.Save(newFileName);   
        }
    }
    <a href="@Href(imagePath)"><img src="@Href(newFileName)" /></a>
}

В выпуске бета-версии 3 этот вспомогательный элемент должен быть изменен, чтобы выглядеть следующим образом:

@helper ThumbnailLink(string imagePath, int width, int height) {
    string newFileName = "";
    WebImage thumbnail = new WebImage(imagePath);
    if(thumbnail != null){
       thumbnail.Resize(width, height, true, true);
       newFileName = @"~\thumb_" + Path.GetFileName(thumbnail.FileName);
       thumbnail.Save(newFileName);   
    }
    <a href="@Href(imagePath)"><img src="@Href(newFileName)" /></a>
}

Обратите внимание, что @{ } символы вокруг исходного кода в вспомогательном приложении больше не используются. Это связано с тем, что содержимое вспомогательных служб рассматривается как блок кода по умолчанию. Вспомогательный элемент отрисовывает разметку, которая начинается с открывающего <a> тега. Если вспомогательный элемент должен отображать обычный текст или теги, не содержащие закрывающий тег (например, <meta> теги), содержимое для отрисовки должно находиться в <text></text> тегах.

Изменение: "WebPageContext.HttpContext" удалено

Свойство WebPageContext.HttpContext было удалено. Вместо этого используйте HttpContext.Current. (Свойство WebPageContext.HttpContext просто упаковано в эту оболочку.)

Изменение: вспомогательный помощник Facebook перешел в новый пакет

Помощник Facebook был перемещен в библиотеку Facebook.Helper , которая включает Facebook вспомогательные и дополнительные функции. Эту библиотеку необходимо установить в виде отдельного пакета, как описано в разделе "Установка вспомогательных компонентов с диспетчер пакетов" в руководстве по началу работы с ASP.NET Pages.

Изменение: типы членства, роли и безопасности перемещаются в новую сборку

Следующие типы были перемещены в сборку WebMatrix.WebData :

  • ExtendedMembershipProvider
  • SimpleMembershipProvider
  • SimpleRoleProvider
  • WebSecurity

Изменение: класс TagBuilder перемещен в сборку System.Web.WebPages.dll

Класс TagBuilder был перемещен в сборку System.Web.WebPages.dll. Ранее это было в сборке, которая была частью ASP.NET MVC. Это изменение означает, что для использования TagBuilder класса не требуется устанавливать ASP.NET MVC.

Однако класс по-прежнему System.Web.Mvc находится в пространстве имен. Чтобы использовать TagBuilder класс (например, в пользовательском вспомогательном ASP.NET Razor), необходимо ссылаться на пространство имен (например, добавляя @using System.Web.Mvc в код).

Изменение: изменен синтаксис проверки запроса; Класс "Validation" удален

Чтобы отключить проверку для отдельного поля или набора полей, можно вызвать Validation.Exclude метод, передав имя или имена полей, которые следует исключить из проверки. Новый синтаксис доступен в выпуске бета-версии 3 для обхода проверки. Метод, Validation используемый в бета-версии 3, удален.

Примечание

Если вы не отключаете проверку запросов, если пользователи пытаются отправить разметку HTML (например, с помощью редактора форматированного текста на странице), веб-сайт сообщит об ошибке, такой как потенциально опасное значение Request.Form было обнаружено от клиента , и входные данные пользователя не принимаются. При отключении проверки запроса необходимо вручную проверить входные данные пользователя, чтобы убедиться, что он не содержит потенциально опасной разметки или скрипта путем предотвращения межсайтовых сценариев (XSS) в ASP.NET Core.

Чтобы отключить автоматическую проверку запросов, вызовите Request.Unvalidated метод, передав имя поля или другого объекта post, для которого требуется обойти проверку запроса. Этот метод можно использовать для обхода проверки для любых элементов в Formколлекциях , Cookiesа QueryStringтакже для коллекций.ServerVariables В следующих примерах показано, как использовать Unvalidated метод:

Request["userInput"]; // Validated 
Request.Unvalidated("userInput"); // Validation bypassed
Request.Unvalidated().Form["userInput"]; // Validation bypassed

Request.QueryString["userPreference"]; // Validated 
Request.Unvalidated().QueryString["userPreference"]; // Validation bypassed

Известные проблемы для веб-страницы ASP.NET с синтаксисом Razor

Проблема. Непредвиденное поведение при использовании пользовательской таблицы пользователей для членства

Чтобы инициализировать поставщик членства для веб-сайта Razor ASP.NET, вызовите WebSecurity.InitializeDatabaseConnection метод. (В WebMatrix шаблон начального сайта включает вызов этого метода в файле _AppStart.cshtml .) autoCreateTables Если для параметра этого метода задано значение true (по умолчанию оно имеет значение true в шаблоне начального сайта), а если в метод передается нераспознанное имя таблицы (второй параметр), метод не выдает ошибку. Вместо этого она автоматически создает таблицу.

Это может быть проблема, если вы планируете использовать пользовательскую таблицу для членства, но передайте неправильное имя таблицы методу WebSecurity.InitializeDatabaseConnection . Так как метод по умолчанию не вызывает ошибку, если указанная таблица не существует, и поскольку вместо нее создается новая таблица, приложение может работать. Однако код приложения, основанный на пользовательской таблице пользователя (и полях в нем), в конечном итоге может завершиться сбоем с непредвиденными ошибками.

Обходное решение
Убедитесь, что имя, переданное в методе InitializeDatabaseConnection , соответствует таблице профиля пользователя в базе данных членства или убедитесь, что autoCreateTables параметр имеет значение false.

Проблема: ошибка "Не удалось создать экземпляр пользователя SQL Server"

Если веб-приложение WebMatrix использует SQL Server Express и работает под управлением IIS 7.5 в Windows 7 или Windows Server 2008 R2, может появиться сообщение об ошибке, указывающее, что SQL Server не может получить путь локального приложения пользователя во время выполнения.

Обходной путь убедитесь, что учетная запись Windows, в которой выполняется приложение (обычно NETWORK SERVICE), имеет разрешения на чтение и запись для корневых папок приложения и вложенных папок, таких как App_Data. Дополнительные сведения см. в разделе "Проблемы с подключением пользователей SQL Server Express" и ASP.net проектами веб-приложений.

Проблема. В Visual Studio пространства имен для пользовательских сборок (DLL) не импортируются автоматически.

Если в проекте в Visual Studio используются пользовательские сборки, пространства имен, объявленные в этих сборках, не импортируются автоматически во время разработки. В результате ссылки на пользовательские типы могут не распознаваться во время разработки и помечены как не распознанные в Visual Studio (с помощью "squiggle"). Эта проблема возникает только во время разработки в Visual Studio; Само приложение выполняется правильно.

Обходное решение
Включите инструкцию using (imports в Visual Basic), которая ссылается на сущности, которые не распознаются во время разработки.

Проблема: Visual Studio IntelliSense и шаблоны проектов, доступные только в ASP.NET MVC версии 3

Установка веб-страницы ASP.NET также не устанавливает средства для Visual Studio, таких как IntelliSense и шаблоны проектов для веб-страницы ASP.NET приложений.

Решение. Чтобы использовать IntelliSense и шаблоны проектов для веб-страницы ASP.NET приложений в Visual Studio, установите ASP.NET MVC 3 RC либо через установщик веб-платформы, либо автономный установщик.

Проблема: ошибка "<вспомогательный> класс не удается найти"

После обновления до бета-версии 3 может появиться сообщение об ошибке, что вспомогательный класс (например, Facebook класс) не найден. Начиная с бета-версии 2 и продолжая работу в бета-версии 3, вспомогательные помощники были перемещены в пакеты, которые необходимо явно установить. Существующие сайты не обновляются, чтобы включить эти пакеты; к ним относятся сайты в папках \My Documents\IISExpress или \My Documents\My Web Sites . В частности, эта ошибка появится при использовании сайта по умолчанию в my Sites (WebSite1), который содержит ссылку на вспомогательный Twitter элемент.

Обходное решение
Закомментируйте вызовы к любым вспомогательным службам на сайте, запустите страницу _Admin и установите пакет или пакеты, которые включают вспомогательные элементы, которые вы хотите использовать. После установки пакета вы можете раскомментируйте строки, которые ссылались на вспомогательные элементы.

Проблема. Развертывание сборок Razor бета-версии 3 ASP.NET в папке Bin может не работать на сайтах размещения

При развертывании веб-сайта веб-страницы ASP.NET на сайте размещения и при развертывании ASP.NET сборок Razor Beta 3 в папке bin сайта могут возникнуть ошибки, в том числе следующие:

Could not load type 'Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility' from assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

Это может произойти, если поставщик размещения установил сборки веб-страницы ASP.NET бета-версии 1 в глобальный кэш приложений сервера (GAC). Сборки в GAC получают приоритет над сборками, установленными локально в папке Bin .

Обходное решение обратитесь к поставщику услуг размещения, чтобы убедиться, что ошибки, которые вы видите, вызваны конфликтом между версиями поставщиков сборок и вашими. В этом случае попросите поставщика размещения обновить сборки в GAC сервера.

Проблема: чтение веб-каналов или других внешних данных через прокси-сервер

Если сервер, на котором выполняется сайт, находится за прокси-сервером, может потребоваться настроить сведения о прокси-сервере в файле конфигурации Web.config , чтобы иметь возможность считывать сведения, поступающие извне сайта. Например, если вы используете вспомогательный сервер, вспомогательный ReCaptcha сервер взаимодействует со службой reCAPTCHA, но может быть заблокирован прокси-сервером. Аналогичным образом, веб-каналы, используемые в веб-страницы ASP.NET, например веб-канал, используемый диспетчером пакетов, могут потребовать конфигурации прокси-сервера.

Если возникают проблемы при работе с внешней службой или работе с веб-каналом пакетов, поместите следующие элементы в корневой файл web.config приложения:

<system.net>
  <defaultProxy>
    <proxy autoDetect="False" 
       proxyaddress="[proxy URL]"/>
  </defaultProxy>
</system.net>

Дополнительные сведения о настройке прокси-сервера см. в разделе <"> Параметры сети" на веб-сайте MSDN.

Проблема: ошибка "Microsoft.Web.Infrastructure.dll не может быть загружена"

Если вы ранее установили бета-версию 1 веб-страницы ASP.NET с синтаксисом Razor, а затем установите бета-версию 3, все соответствующие сборки устанавливаются в GAC, кроме Microsoft.Web.Infrastructure.dll. В результате при запуске ASP.NET страницах Razor отображается ошибка, указывающая, что не удалось загрузить Microsoft.Web.Infrastructure.dll .

Эта проблема не возникает, если вы загружаете выпуск бета-версии 3 на чистый компьютер.

Обходное решение
В панель управления удалите веб-страницы ASP.NET. Затем переустановите выпуск бета-версии 3.

Проблема. Удаление платформа .NET Framework версии 4 отключает веб-страницы ASP.NET с синтаксисом Razor

Если удалить платформа .NET Framework версии 4, а затем переустановить ее, веб-страницы ASP.NET с синтаксисом Razor отключен. Страницы с расширением CSHTML не выполняются правильно. веб-страницы ASP.NET регистрирует сборку в корневом каталоге компьютераФайл web.config и удаление платформа .NET Framework удаляет этот файл. Переустановка платформа .NET Framework устанавливает новую версию файла конфигурации, но не добавляет ссылку для сборки веб-страницы ASP.NET.

Решение после переустановки платформа .NET Framework переустановите веб-страницы ASP.NET с синтаксисом Razor. При этом в корневой каталог компьютера добавляется следующий элемент в файл web.config , который обычно находится в следующем расположении:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config (32-bit)

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config (64-bit)

<compilation>
  <assemblies>
    <add assembly="Microsoft.WebPages.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

    <-- Additional assemblies here. -->

  </assemblies>
</compilation>

Проблема. Приложения, ранее развернутые с ASP.NET сборками в папке bin, возникают ошибки

Во время развертывания копии сборок веб-страницы ASP.NET (например, Microsoft.WebPages.dll) в папку Bin веб-сайта на сервере. (Возможно, это произошло автоматически во время развертывания или из-за того, что разработчик явно скопировал сборки.) Однако при установке бета-версии 3 возникают ошибки, такие как ошибки, которые не удается найти. Это происходит из-за того, что ряд типов веб-страницы ASP.NET были перемещены в разные пространства имен для выпуска Beta 3.

Обходное решение
Снимите папку Bin развернутого приложения, скопируйте новые сборки в папку (или повторно разверните приложение), а затем перезапустите приложение.

Проблема. URL-адреса без расширения не находят ФАЙЛЫ CSHTML/.vbhtml в IIS 7 или IIS 7.5

В IIS 7 или IIS 7.5 запросы с URL-адресом, как показано ниже, не могут найти страницы с расширением CSHTML или VBHTML:

http://www.example.com/ExampleSite/ExampleFile

Проблема возникает, так как перезапись URL-адресов не включена по умолчанию для IIS 7 или IIS 7.5. Самый похожий сценарий заключается в том, что при локальном тестировании с помощью IIS Express не отображается проблема, но при развертывании веб-сайта на веб-сайте размещения не возникает.

Обходное решение

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

Проблема. Использование проекта веб-приложения или ASP.NET MVC и веб-страниц ASP.NET в том же приложении

Если вы использовали веб-страницы ASP.NET в проекте веб-приложения или ASP.NET приложении MVC, может появиться сообщение об ошибке, которую не удается найти WebPageHttpApplication.

Обходное решение
Если вы получите эту ошибку, измените базовый класс, из которого наследуется приложение. В файле Global.asax измените следующую строку:

public class MvcApplication :  WebPageHttpApplication { ... }

На эту:

public class MvcApplication :  HttpApplication { ... }

Это повлияет на изменение, которое было введено для выпуска бета-версии 1 веб-страницы ASP.NET с синтаксисом Razor.

Проблема. Развертывание приложения на компьютере без установленного SQL Server Compact

Приложения, включающие базы данных SQL Server Compact, могут работать на компьютере, на котором SQL Server Compact не установлен. Microsoft WebMatrix Beta 3 автоматически копирует эти двоичные файлы и выполняет соответствующие преобразования файла конфигурации Web.config .

Обходное решение , если необходимо скопировать эти файлы и внести изменения в файл конфигурации Web.config вручную, сделайте следующее:

  1. Скопируйте сборки ядра СУБД в папку Bin (и вложенные папки) приложения на целевом компьютере:

    • Копирование C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll в \Bin
    • Копирование C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\x86\* to \Bin\x86
    • Копирование C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\amd64\* to \Bin\amd64
  2. В корневой папке веб-сайта создайте или откройте файл web.config . (В WebMatrix Beta 3 этот тип файла доступен при нажатии кнопки Все в диалоговом окне "Выбор типа файла".)

  3. Добавьте следующий элемент в качестве дочернего элемента конфигурации> (не внутри< элемента system.web>):<

<system.data>
  <DbProviderFactories>
    <remove invariant="System.Data.SqlServerCe.4.0"></remove>
    <add name="Microsoft SQL Server Compact Data Provider" 
      invariant="System.Data.SqlServerCe.4.0" 
      Description=".NET Framework Data Provider for Microsoft SQL Server Compact" 
      type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
  </DbProviderFactories>
</system.data>

Проблема. Вспомогательные средства базы данных и WebGrid не работают в среде среднего доверия в Visual Basic

Если вы используете Visual Basic (создание Vbhtml-файлов ), вспомогательные элементы не будут работать, Database WebGrid если приложение будет использовать среднее доверие.

Обходное решение
Временно установите приложение для использования полного доверия.

SQL Server Compact

Проблема: свойство Encrypt не распознается

SQL Server Compact 4.0 не распознает Encrypt свойство SqlCeConnection класса. Это свойство не следует использовать для шифрования файлов базы данных. Свойство Encrypt не рекомендуется использовать в выпуске SQL Server Compact 3.5 и сохранялось только для обратной совместимости.

Обходное решение
Encryption Mode Используйте свойство SqlCeConnection класса для шифрования файлов базы данных SQL Server Compact 4.0. В следующем примере показано, как создать зашифрованную базу данных SQL Server Compact 4.0 с помощью Encryption Mode свойства:

SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;");
engine.CreateDatabase();
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;")
engine.CreateDatabase()

Чтобы изменить режим шифрования существующей базы данных SQL Server Compact 4.0, сделайте следующее:

SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;");
engine.Compact("Data Source=Northwind.sdf;encryption mode=ppc2003 compatibility;Password=<enterStrongPasswordHere>;");
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;Password=<enterStrongPasswordHere>;")
engine.Compact("Data Source=Northwind.sdf;encryption mode=ppc2003 compatibility;Password=<enterStrongPasswordHere>;")

Чтобы зашифровать незашифрованную базу данных SQL Server Compact 4.0, сделайте следующее:

SqlCeEngine engine = new SqlCeEngine("Data Source=Northwind.sdf");
engine.Compact("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;");
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;")
engine.Compact("Data Source=Northwind.sdf;encryption mode=platform default;Password=<enterStrongPasswordHere>;")

Проблема: требуются библиотеки среды выполнения Microsoft Visual C++ 2008

Для собственных библиотек DLL SQL Server Compact 4.0 требуются библиотеки среды выполнения Microsoft Visual C++ 2008 (x86, IA64 и x64), пакет обновления 1 .

Обходное решение
Установите платформа .NET Framework 3.5 с пакетом обновления 1 (SP1). Это также устанавливает библиотеки среды выполнения Visual C++ 2008 с пакетом обновления 1 (SP1). Вы можете скачать библиотеки из следующего расположения:

Microsoft Visual C++ 2008 с пакетом обновления 1 для распространяемого пакета ATL

Примечание

Обратите внимание, что установка платформа .NET Framework 2.0, 3.0 или 4 не устанавливает библиотеки среды выполнения Visual C++ 2008 с пакетом обновления 1 (SP1).

Проблема. Если SQL Server Compact установлен перед установкой платформа .NET Framework на компьютере, его имя поставщика инвариантного имени не зарегистрировано в файле платформа .NET Framework machine.config

SQL Server Compact можно установить на компьютере, который не установлен платформа .NET Framework, так как SQL Server Compact требует платформу .NET. Если перед установкой SQL Server Compact не установлен ни платформа .NET Framework версии 3.5, ни 4, программа установки SQL Server Compact не регистрирует имя поставщика инвариантного имени в файле machine.config. Любое приложение, использующее запись SQL Server Compact в файле machine.config, завершится ошибкой. Запись регистрации инвариантного имени в machine.config выглядит следующим образом:

<system.data>
  <DbProviderFactories>
    <remove invariant="System.Data.SqlServerCe.4.0"></remove>
    <add 
name="Microsoft SQL Server Compact Data Provider" 
invariant="System.Data.SqlServerCe.4.0"
        Description=".NET Framework Data Provider for Microsoft SQL Server Compact" 
        type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, 
Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
    </DbProviderFactories>
</system.data>

Обходное решение
Удалите SQL Server Compact 4.0 CTP1. Скачайте и установите полные версии платформа .NET Framework из следующего расположения:

Microsoft платформа .NET Framework 3.5 с пакетом обновления 1 (полный пакет)
Выпуск Microsoft платформа .NET Framework 4.0 (полный пакет)

Затем переустановите SQL Server Compact 4.0 с пакетом обновления 1 (SP1).

Установка приложений

Проблема. Установка приложения может занять много времени, если папка "Мои документы" пользователя перенаправляется в сетевую папку

Обходное решение
Нет. Приложение может занять некоторое время, но будет правильно установлено.

Публикация приложений

Проблема. Сайт может не работать после публикации, если поле "Целевой URL-адрес" не префиксировано с http:// или https://

В диалоговом окне "Параметры публикации", если целевой URL-адрес не начинается http:// или https://сайт может не работать после развертывания.

Обходное решение
Убедитесь, что перед публикацией сайта url-адрес назначения в диалоговом окне "Параметры публикации " начинается с http:// или https://.

Проблема. Публикация базы данных MySQL завершается ошибкой "Не удалось опубликовать базу данных. Это может произойти, если удаленная база данных не может запустить скрипт".

Ошибка может возникать по ряду причин. Одна из причин, по которой эта ошибка возникает, если сценарий базы данных содержит один символ кавычки ('), а набор символов по умолчанию базы данных MySQL не соответствует UTF-8.

Обходное решение
Задайте для удаленной базы данных MySQL значение UTF-8 по умолчанию.

Другие проблемы

Проблема: поиск и фильтрация не работает в отчетах для группы по: тип проблемы

При запуске отчета для сайта при вводе текста в поле "Фильтр по URL-адресу " и нажатии кнопки "Поиск" ничего не происходит. Это связано с тем, что этот элемент управления не работает, в то время как состояние группы по отчету имеет тип проблемы, который является значением по умолчанию.

Решение на вкладке " Группа по группе по " ленты щелкните URL-адрес, чтобы сгруппировать записи по их исходному URL-адресу . Текстовое поле и кнопка для фильтрации записей работают в этом состоянии.

Проблема. Не удается запустить приложения WCF с помощью IIS Express

Просмотр приложения WCF приводит к ошибке, как показано ниже:

Не удалось загрузить файл или сборку Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad36ad364e35 или одну из зависимостей. Системе не удается найти указанный файл.

Это происходит, так как по умолчанию выпуск IIS Express Beta не поддерживает WCF.

Обходное решение используйте одно из следующих обходных решений (для обходного решения #2 требуется Microsoft Windows Vista или более поздней версии):

  1. Скопируйте сборки Microsoft.Web.dll и Microsoft.Web.Administration.dll из расположения установки WebMatrix в каталог bin приложения WCF. По умолчанию WebMatrix устанавливается в вложенную папку Microsoft WebMatrix в папке Program Files системы.

  2. В Microsoft Windows Vista или более поздней версии создайте ссылку на сборки в каталоге bin с помощью следующих команд. (Этот подход имеет преимущество, что он не создает копию сборок.)

    mklink Microsoft.Web.Administration.dll "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.Administration.dll"
    mklink Microsoft.Web.dll "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.dll"
    
  3. Установите две сборки в GAC. В командной строке с повышенными привилегиями выполните следующие команды:

    gacutil /i  "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.Administration.dll"
    gacutil /i "c:\Program Files (x86)\Microsoft WebMatrix\Microsoft.Web.dll"
    

Проблема: WebMatrix Beta 3 не может выполнять определенные задачи, требующие повышения прав

WebMatrix Beta 3 не может выполнять определенные задачи, требующие повышения прав, например установку дополнительных компонентов в следующих ситуациях:

  • В Windows Vista или Windows 7 вы вошли в систему с учетной записью, которая не имеет прав администратора, а управление учетными записями пользователей (UAC) отключена.
  • Вы используете Microsoft Windows XP или Microsoft Windows Server 2003.

Обходное решение
Большинство задач в WebMatrix Beta 3 не требуют разрешения администратора. Для тех, кто это делает, можно выполнить операцию от имени администратора или выполнить следующие действия:

  • В Windows Vista или Windows 7 включите UAC.
  • В Windows XP добавьте пользователя в группу безопасности администраторов.

Параметр "Сайт из веб-коллекции " отключен, если установщик веб-платформы 3.0 не установлен.

Обходное решение
Установите установщик веб-платформа Майкрософт 3.0.

Проблема. В Windows Server 2003 СЛУЖБА IIS Express не запускается для пользователя, не администрирования

В Windows Server 2003 при запуске страницы или запуске IIS Express служба IIS Express не запускается. Для веб-страниц отображается сообщение об ошибке, указывающее, что приложение запущено пользователем, не администрированием.

Обходное решение
Запустите WebMatrix Beta 3 от имени администратора.

Проблема: Google Chrome недоступен в качестве параметра "Запустить"

Google Chrome не отображается в списке браузеров в разделе "Запуск " на вкладке "Главная ".

Обходное решение
Некоторые версии Google Chrome не регистрируются правильно с помощью функции программ по умолчанию в Windows. В качестве обходного решения запустите Google Chrome, выберите меню "Настройка и управление Google Chrome", выберите пункт "Параметры" и выберите пункт "Сделать Google Chrome моим браузером по умолчанию".

Проблема. Диалоговое окно "Внешний ключ" не позволяет вводить первичный ключ

Диалоговое окно "Внешний ключ" не позволяет вводить имя первичного ключа из таблицы первичного ключа.

Обходное решение
Это сделано намеренно. Не нужно вводить имя первичного ключа из таблицы первичного ключа.

Проблема: кнопка "Связи" отключена

Кнопка "Связи" на вкладке "Таблица" в рабочей области "Базы данных" отключена для баз данных SQL Server Compact.

Обходное решение
Нет. SQL Server Compact не поддерживает связи между таблицами.

Проблема. Параметризованные запросы SQL вызывают исключения

В SQL Server Compact 4.0, если не указать тип данных, например SqlDbType или DbType для параметров в параметризованных запросах, при выполнении запроса возникает исключение.

Обходное решение
Явно задайте тип данных для таких параметров, как SqlDbType или DbType. Это важно в случае типов данных BLOB (image и ntext). Используйте следующий код:

SqlCeEngine engine = new SqlCeEngine(connString);
engine.CreateDatabase();
engine.Dispose();
SqlCeConnection conn = new SqlCeConnection(connString);
conn.Open();
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandText = "CREATE TABLE BlobTable(name nvarchar(128), blob ntext);";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO BlobTable(name, blob) VALUES (@name, @blob);";
SqlCeParameter paramName = cmd.Parameters.Add("name", SqlDbType.NVarChar, 128);
SqlCeParameter paramBlob = cmd.Parameters.Add("blob", SqlDbType.NText);
paramName.Value = "Name1";
paramBlob.Value = "Name1".PadLeft(4001);
cmd.ExecuteNonQuery();
Dim engine As SqlCeEngine = New SqlCeEngine(connString)
engine.CreateDatabase()
engine.Dispose()
Dim conn As SqlCeConnection = New SqlCeConnection(connString)
conn.Open()
Dim cmd As SqlCeCommand = conn.CreateCommand()
cmd.CommandText = "CREATE TABLE BlobTable(name nvarchar(128), blob ntext);"
cmd.ExecuteNonQuery()
cmd.CommandText = "INSERT INTO BlobTable(name, blob) VALUES (@name, @blob);"
Dim paramName As SqlCeParameter
Dim paramBlob As SqlCeParameterparamName = cmd.Parameters.Add("name", SqlDbType.NVarChar, 128)
paramName.Value = "Name1"
paramBlob = cmd.Parameters.Add("blob", SqlDbType.NText)
paramBlob.Value = "Name1".PadLeft(4001)
cmd.ExecuteNonQuery()

Дополнительные сведения

Дополнительные сведения о WebMatrix Beta 3 см. на следующих веб-сайтах: