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

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

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.

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

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

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

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

Установка 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 с пакетом обновления 2 (SP2)

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

Обходное решение
Установите 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 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" изменен

В выпуске Beta 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.

Изменение: Типы Membership, Role и Security перемещаются в новую сборку

Следующие типы были перемещены в сборку 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, 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 (с помощью squiggle). Эта проблема возникает только во время разработки в Visual Studio; Само приложение выполняется правильно.

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

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

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

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

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

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

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

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

При развертывании веб-сайта ASP.NET Web Pages на сайте хостинга, и при развертывании сборок 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 Web Pages Beta 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 Pages регистрируют сборку в файле Web.config в корне компьютера, и удаление платформы .NET Framework удаляет этот файл. Переустановка платформы .NET Framework устанавливает новую версию файла конфигурации, но не добавляет ссылку для сборки ASP.NET Web Pages.

Временное решение После переустановки .NET Framework переустановите ASP.NET Web Pages с синтаксисом 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 веб-сайта на сервере. (Возможно, это произошло автоматически во время развертывания или из-за того, что разработчик явно скопировал сборки.) Однако при установке Beta 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 { ... }

Это фактически отменяет изменение, которое было введено для выпуска Beta 1 ASP.NET Web Pages с синтаксисом 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\* в\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), вспомогательные элементы DatabaseWebGrid не будут работать, если приложение настроено на использование Medium Trust.

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

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=;p;w;here;>;");
engine.CreateDatabase();
Dim engine As SqlCeEngine = New SqlCeEngine("Data Source=Northwind.sdf;encryption mode=platform default;Password=Password=;p;w;here;>;")
engine.CreateDatabase()

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

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

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

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

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

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

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

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

Примечание.

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

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

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 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 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 добавьте пользователя в группу безопасности администраторов.

Параметр «Сайт из веб-галереи» отключен, если не установлен Web Platform Installer 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 см. на следующих веб-сайтах: