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

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

9 ноября 2010 г.

Содержимое

Общие сведения

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

Установка

Чтобы установить WebMatrix Beta 3, используйте установщик веб-платформы Майкрософт 3.0. После установки установщика веб-платформы его можно использовать для установки WebMatrix Beta 3.

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

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

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

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

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

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

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

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

  • Windows 7
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Vista с пакетом обновления 1 (SP1) или выше
  • Windows XP с пакетом обновления 3 (SP3)
  • Windows Server 2003 с пакетом обновления 2 (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 (sp1) (полный пакет)

Затем переустановите 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" удален

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

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

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

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

@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. Вспомогающая библиотека, которая включает в себя вспомогающую 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

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

Примечание

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

Чтобы отключить автоматическую проверку запросов, вызовите Request.Unvalidated метод , передав ему имя поля или другого объекта post, для которого требуется обойти проверку запроса. Этот метод можно использовать для обхода проверки любых элементов в коллекциях Form, QueryString, Cookiesи 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

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

Чтобы инициализировать поставщик членства для веб-сайта ASP.NET Razor, вызовите 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 (с помощью волнистой линией). Эта проблема возникает только во время разработки в 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 с помощью установщика веб-платформы или автономного установщика.

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

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

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

Проблема. Развертывание бета-версии 3 ASP.NET сборок Razor в папке 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 были перемещены в разные пространства имен для бета-версии 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. Добавьте следующий элемент в качестве дочернего <элемента элемента configuration> (не внутри <элемента 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 и сохранено только для обеспечения обратной совместимости.

Обходное решение
Для шифрования файлов базы данных SQL Server Compact 4.0 пользуйтесь свойством Encryption Mode класса SqlCeConnection. В следующем примере показано, как создать зашифрованную базу данных 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 (SP1).

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

Microsoft Visual C++ 2008 с пакетом обновления 1 (SP1) распространяемый пакет 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 Framework. Если перед установкой 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 (sp1) (полный пакет)
Выпуск 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=31bf3856ad364e35" или одну из его зависимостей. Системе не удается найти указанный файл.

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

Решение Используйте одно из следующих обходных решений (для обходного пути No 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 добавьте пользователя в группу безопасности Администраторы.

Параметр Site from Web Gallery отключен, если установщик веб-платформы 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 см. на следующих веб-сайтах: