Файл сведений для 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.
Если во время установки возникли проблемы, обратитесь к разделу "Устранение неполадок с установщиком веб-платформа Майкрософт".
Пошаговые инструкции по публикации приложений
Проблема. Бета-версия 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 на 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 с помощью параметров командной строки не работает в этом выпуске.
Обходное решение
Используйте программы и компоненты в Windows панель управления для удаления Microsoft SQL Server Compact 4.0.
В этом разделе документа описываются новые функции, изменения и известные проблемы с выпуском бета-версии 3 веб-страницы ASP.NET с синтаксисом Razor.
Новый
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>")
HrefAttribute
МетодWebPage
класса был удален. Этот вспомогательный метод использовался для кодирования небезопасных символов в URL-адресах. Больше не требуется, так как ASP.NET Razor автоматически кодирует строки. (Используйте новыйHtml.Raw
метод для отрисовки незакодированных строк.)
В выпуске бета-версии 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
было удалено. Вместо этого используйтеHttpContext.Current
. (СвойствоWebPageContext.HttpContext
просто упаковано в эту оболочку.)
Помощник
Следующие типы были перемещены в сборку
WebMatrix.WebData
:
ExtendedMembershipProvider
SimpleMembershipProvider
SimpleRoleProvider
WebSecurity
Класс
TagBuilder
был перемещен в сборку System.Web.WebPages.dll. Ранее это было в сборке, которая была частью ASP.NET MVC. Это изменение означает, что для использованияTagBuilder
класса не требуется устанавливать ASP.NET MVC.Однако класс по-прежнему
System.Web.Mvc
находится в пространстве имен. Чтобы использоватьTagBuilder
класс (например, в пользовательском вспомогательном ASP.NET Razor), необходимо ссылаться на пространство имен (например, добавляя@using System.Web.Mvc
в код).
Чтобы отключить проверку для отдельного поля или набора полей, можно вызвать
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
Проблема. Непредвиденное поведение при использовании пользовательской таблицы пользователей для членства
Чтобы инициализировать поставщик членства для веб-сайта Razor ASP.NET, вызовите
WebSecurity.InitializeDatabaseConnection
метод. (В WebMatrix шаблон начального сайта включает вызов этого метода в файле _AppStart.cshtml .)autoCreateTables
Если для параметра этого метода задано значение true (по умолчанию оно имеет значение true в шаблоне начального сайта), а если в метод передается нераспознанное имя таблицы (второй параметр), метод не выдает ошибку. Вместо этого она автоматически создает таблицу.Это может быть проблема, если вы планируете использовать пользовательскую таблицу для членства, но передайте неправильное имя таблицы методу
WebSecurity.InitializeDatabaseConnection
. Так как метод по умолчанию не вызывает ошибку, если указанная таблица не существует, и поскольку вместо нее создается новая таблица, приложение может работать. Однако код приложения, основанный на пользовательской таблице пользователя (и полях в нем), в конечном итоге может завершиться сбоем с непредвиденными ошибками.Обходное решение
Убедитесь, что имя, переданное в методеInitializeDatabaseConnection
, соответствует таблице профиля пользователя в базе данных членства или убедитесь, чтоautoCreateTables
параметр имеет значение false.
Если веб-приложение 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), которая ссылается на сущности, которые не распознаются во время разработки.
Установка веб-страницы ASP.NET также не устанавливает средства для Visual Studio, таких как IntelliSense и шаблоны проектов для веб-страницы ASP.NET приложений.
Решение. Чтобы использовать IntelliSense и шаблоны проектов для веб-страницы ASP.NET приложений в Visual Studio, установите ASP.NET MVC 3 RC либо через установщик веб-платформы, либо автономный установщик.
После обновления до бета-версии 3 может появиться сообщение об ошибке, что вспомогательный класс (например,
Обходное решение
Закомментируйте вызовы к любым вспомогательным службам на сайте, запустите страницу _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.
Если вы ранее установили бета-версию 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 (например, Microsoft.WebPages.dll) в папку Bin веб-сайта на сервере. (Возможно, это произошло автоматически во время развертывания или из-за того, что разработчик явно скопировал сборки.) Однако при установке бета-версии 3 возникают ошибки, такие как ошибки, которые не удается найти. Это происходит из-за того, что ряд типов веб-страницы ASP.NET были перемещены в разные пространства имен для выпуска Beta 3.
Обходное решение
Снимите папку Bin развернутого приложения, скопируйте новые сборки в папку (или повторно разверните приложение), а затем перезапустите приложение.
В IIS 7 или IIS 7.5 запросы с URL-адресом, как показано ниже, не могут найти страницы с расширением CSHTML или VBHTML:
http://www.example.com/ExampleSite/ExampleFile
Проблема возникает, так как перезапись URL-адресов не включена по умолчанию для IIS 7 или IIS 7.5. Самый похожий сценарий заключается в том, что при локальном тестировании с помощью IIS Express не отображается проблема, но при развертывании веб-сайта на веб-сайте размещения не возникает.
Обходное решение
- Если у вас есть контроль над серверным компьютером, на серверном компьютере установите обновление, описанное в обновлении, доступно, что позволяет определенным обработчикам IIS 7.0 или IIS 7.5 обрабатывать запросы, URL-адреса которых не заканчиваются периодом.
- Если у вас нет контроля над серверным компьютером (например, вы развертываете на веб-сайте размещения), добавьте следующее в файл веб-конфигурации веб-сайта:
<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 не установлен. Microsoft WebMatrix Beta 3 автоматически копирует эти двоичные файлы и выполняет соответствующие преобразования файла конфигурации Web.config .
Обходное решение , если необходимо скопировать эти файлы и внести изменения в файл конфигурации Web.config вручную, сделайте следующее:
Скопируйте сборки ядра СУБД в папку 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
В корневой папке веб-сайта создайте или откройте файл web.config . (В WebMatrix Beta 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 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>;")
Для собственных библиотек 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 приводит к ошибке, как показано ниже:
Не удалось загрузить файл или сборку Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad36ad364e35 или одну из зависимостей. Системе не удается найти указанный файл.
Это происходит, так как по умолчанию выпуск IIS Express Beta не поддерживает WCF.
Обходное решение используйте одно из следующих обходных решений (для обходного решения #2 требуется Microsoft Windows Vista или более поздней версии):
Скопируйте сборки Microsoft.Web.dll и Microsoft.Web.Administration.dll из расположения установки WebMatrix в каталог bin приложения WCF. По умолчанию WebMatrix устанавливается в вложенную папку Microsoft WebMatrix в папке Program Files системы.
В 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"
Установите две сборки в 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 не может выполнять определенные задачи, требующие повышения прав, например установку дополнительных компонентов в следующих ситуациях:
- В 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 не регистрируются правильно с помощью функции программ по умолчанию в Windows. В качестве обходного решения запустите Google Chrome, выберите меню "Настройка и управление Google Chrome", выберите пункт "Параметры" и выберите пункт "Сделать Google Chrome моим браузером по умолчанию".
Диалоговое окно "Внешний ключ" не позволяет вводить имя первичного ключа из таблицы первичного ключа.
Обходное решение
Это сделано намеренно. Не нужно вводить имя первичного ключа из таблицы первичного ключа.
Кнопка "Связи" на вкладке "Таблица" в рабочей области "Базы данных" отключена для баз данных SQL Server Compact.
Обходное решение
Нет. SQL Server Compact не поддерживает связи между таблицами.
В 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 см. на следующих веб-сайтах: