영어로 읽기

다음을 통해 공유


WebMatrix 및 ASP.NET 웹 페이지(Razor) 베타 3 릴리스 추가 정보

WebMatrix 및 ASP.NET 웹 페이지(Razor) 베타 3 릴리스 추가 정보

2010년 11월 9일

콘텐츠

개요

Microsoft WebMatrix 베타는 몇 분 안에 설치되는 무료 웹 개발 스택입니다. 웹 서버를 데이터베이스 및 프로그래밍 프레임워크와 통합하여 통합된 단일 환경을 만듭니다. WebMatrix 베타를 사용하여 고유한 ASP.NET 또는 PHP 웹 사이트를 코딩, 테스트 및 게시하는 방법을 간소화하거나, WebMatrix 베타를 사용하여 DotNetNuke, Umbraco, WordPress 또는 Joomla와 같은 인기 있는 오픈 소스 앱을 사용하여 새 웹 사이트를 시작할 수 있습니다. WebMatrix Beta는 인터넷에서 웹 사이트를 실행하는 동일한 강력한 웹 서버, 데이터베이스 엔진 및 프레임워크 환경을 사용하여 개발에서 프로덕션으로 원활하고 원활하게 전환합니다.

설치

참고

WebMatrix는 더 이상 ASP.NET 웹 페이지 통합 개발 환경으로 권장되지 않습니다. Visual Studio 또는 Visual Studio Code를 사용합니다.

설치하는 동안 문제가 있는 경우 Microsoft 웹 플랫폼 설치 관리자 문제 해결을 참조하세요.

애플리케이션 게시에 대한 지침

애플리케이션 게시에 대한 단계별 지침 참조

새 기능, 변경 내용 및 알 수 없는 문제

WebMatrix 베타 3 설치

문제: WebMatrix 베타 3은 Microsoft .NET Framework 4를 지원하는 플랫폼에서만 사용할 수 있습니다.

WebMatrix 베타에는 .NET Framework 버전 4가 필요합니다. 경우에 따라 WebMatrix 베타 설치 관리자를 사용하면 지원되는 구성 집합의 일부가 아닌 플랫폼에 설치할 수 있습니다. 특히 SP1 업데이트가 없는 Windows Vista를 사용하면 WebMatrix 베타 설치를 시작할 수 있지만 .NET Framework 4 구성 요소는 실패하고 설치를 차단합니다.

해결 방법
다음을 포함하는 지원되는 플랫폼에 설치합니다.

  • Windows 7
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Vista SP1 이상
  • Windows XP SP3
  • Windows Server 2003 SP2

문제: Microsoft Visual Studio 2008 SP1 없이 Microsoft Visual Studio 2008이 설치된 경우 WebMatrix 베타 3을 설치할 수 없음

해결 방법
Microsoft 다운로드 센터에서 Microsoft Visual Studio 2008 서비스 팩 1을 설치합니다.

문제: SQL Server Compact 4.0에 대한 일부 어셈블리가 GAC에 설치되지 않음

SQL Server Compact 4.0용 관리형 어셈블리는 64비트 컴퓨터에 SQL Server Compact 4.0을 설치하고 컴퓨터에 .NET Framework 3.5 SP1 클라이언트 프로필만 설치한 경우 GAC(전역 어셈블리 캐시)에 배치되지 않습니다. 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 웹 페이지 2

문서의 이 섹션에서는 Razor 구문을 사용한 ASP.NET 웹 페이지 베타 3 릴리스의 새로운 기능, 변경 내용 및 알려진 문제에 대해 설명합니다.

Razor 구문을 사용하여 ASP.NET 웹 페이지 베타 3의 새로운 기능

New: "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>")

Razor 구문을 사용하여 ASP.NET 웹 페이지 베타 3의 변경 내용

변경: "HrefAttribute" 메서드가 제거됨

HrefAttribute 클래스의 메서드가 WebPage 제거되었습니다. 이 도우미는 URL에서 안전하지 않은 문자를 인코딩하는 데 사용되었습니다. ASP.NET Razor는 문자열을 자동으로 인코딩하므로 더 이상 필요하지 않습니다. (새 Html.Raw 메서드를 사용하여 인코딩되지 않은 문자열을 렌더링합니다.)

변경: 선언적 "@helper" 도우미의 구문이 변경됨

베타 3 릴리스에서 ASP.NET 구문을 사용하여 @helper 만든 도우미를 구문 분석하는 방법을 변경합니다. 기본적으로 @helper 구문은 이제 코드를 포함할 수 있는 태그 블록 대신 코드 블록으로 구문 분석됩니다. 따라서 도우미 내의 코드를 블록으로 @{ } 묶을 필요가 없습니다. 반대로 도우미 내의 태그는 HTML 요소 또는 ASP.NET Razor <text></text> 태그에 명시적으로 포함되어야 합니다.

예를 들어 다음 @helper 구문은 베타 3 릴리스에서 작동합니다.

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

베타 3 릴리스에서 이 도우미는 다음 예제와 같이 변경해야 합니다.

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

도우미의 @{ } 초기 코드 주위에 있는 문자는 더 이상 사용되지 않습니다. 도우미의 내용은 기본적으로 코드 블록으로 처리되기 때문입니다. 도우미는 태그를 렌더링합니다. 이 태그는 여 <a> 는 태그로 시작합니다. 도우미가 닫는 태그(예 <meta> : 태그)를 포함하지 않는 일반 텍스트 또는 태그를 렌더링해야 하는 경우 렌더링할 콘텐츠는 태그에 있어야 <text></text> 합니다.

변경: "WebPageContext.HttpContext" 제거됨

WebPageContext.HttpContext 속성이 제거되었습니다. 대신 HttpContext.Current를 사용하세요. (속성은 WebPageContext.HttpContext 단순히 이것을 래핑했습니다.)

변경: "Facebook" 도우미가 새 패키지로 이동

도우미가 Facebook 도우미 및 추가 기능을 포함하는 Facebook.Helper 라이브러리로 Facebook 이동되었습니다. ASP.NET Pages 시작 자습서의 "패키지 관리자 도우미 설치"에 설명된 대로 이 라이브러리를 별도의 패키지로 설치해야 합니다.

변경: 멤버 자격, 역할 및 보안 유형이 새 어셈블리로 이동

다음 형식이 어셈블리로 WebMatrix.WebData 이동되었습니다.

  • ExtendedMembershipProvider
  • SimpleMembershipProvider
  • SimpleRoleProvider
  • WebSecurity

변경: "TagBuilder" 클래스가 System.Web.WebPages.dll 어셈블리로 이동됨

클래스가 TagBuilder System.Web.WebPages.dll 어셈블리로 이동되었습니다. 이전에는 ASP.NET MVC의 일부인 어셈블리에 있었습니다. 이 변경은 클래스를 사용하기 위해 ASP.NET MVC를 설치할 필요가 없음을 TagBuilder 의미합니다.

그러나 클래스는 여전히 네임스페이스에 System.Web.Mvc 있습니다. 클래스를 사용 TagBuilder 하려면(예: 사용자 지정 ASP.NET Razor 도우미에서) 네임스페이스를 참조해야 합니다(예: 코드에 추가 @using System.Web.Mvc ).

변경: 요청 유효성 검사 구문이 변경되었습니다. "Validation" 클래스가 제거됨

베타 3 릴리스에서 개별 필드 또는 필드 집합에 대한 유효성 검사를 사용하지 않도록 설정하려면 메서드를 호출 Validation.Exclude 하여 유효성 검사에서 제외할 필드의 이름 또는 이름을 전달할 수 있습니다. 유효성 검사를 우회하기 위해 베타 3 릴리스에서 새 구문을 사용할 수 있습니다. Validation 베타 3에서 사용되는 메서드가 제거되었습니다.

참고

요청 유효성 검사를 사용하지 않도록 설정하지 않으면 사용자가 HTML 태그를 업로드하려고 하면(예: 페이지에서 서식 있는 텍스트 편집기를 사용하여) 웹 사이트에서 잠재적으로 위험한 Request.Form 값이 클라이언트에서 검색되고 사용자 입력이 허용되지 않는 등의 오류가 보고됩니다. 요청 유효성 검사를 사용하지 않도록 설정하는 경우 ASP.NET Core에서 XSS(교차 사이트 스크립팅)를 방지하여 잠재적으로 위험한 태그 또는 스크립트가 포함되지 않도록 사용자 입력을 수동으로 확인해야 합니다.

자동 요청 유효성 검사를 사용하지 않도록 설정하려면 메서드를 Request.Unvalidated 호출하여 요청 유효성 검사를 무시하려는 필드 또는 다른 게시 개체의 이름을 전달합니다. 이 메서드를 사용하여 , QueryStringCookiesServerVariables 컬렉션의 Form모든 항목에 대한 유효성 검사를 무시할 수 있습니다. 다음 예제에서는 메서드를 사용하는 방법을 보여 줍니다 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 웹 페이지 알려진 문제

문제: 멤버 자격에 사용자 지정 사용자 테이블을 사용하는 경우 예기치 않은 동작

ASP.NET Razor 웹 사이트의 멤버 자격 공급자를 초기화하려면 메서드를 호출합니다 WebSecurity.InitializeDatabaseConnection . WebMatrix에서 시작 사이트 템플릿에는 _AppStart.cshtml 파일에서 이 메서드에 대한 호출이 포함됩니다. autoCreateTables 이 메서드의 매개 변수가 true로 설정되고(기본적으로 시작 사이트 서식 파일에서 true로 설정됨) 인식할 수 없는 테이블 이름이 메서드(두 번째 매개 변수)에 전달되는 경우 메서드는 오류를 throw하지 않습니다. 대신 테이블을 자동으로 만듭니다.

멤버 자격에 사용자 지정 사용자 테이블을 사용하지만 잘못된 테이블 이름을 메서드에 WebSecurity.InitializeDatabaseConnection 전달하려는 경우 문제가 될 수 있습니다. 지정한 테이블이 없으면 메서드가 기본적으로 오류를 발생시키지 않으며 대신 새 테이블을 만들기 때문에 애플리케이션이 작동하는 것처럼 보일 수 있습니다. 그러나 사용자 지정 사용자 테이블(및 해당 필드)을 사용하는 애플리케이션 코드는 결국 예기치 않은 오류로 실패할 수 있습니다.

해결 방법
메서드에 InitializeDatabaseConnection 전달된 이름이 멤버 자격 데이터베이스의 사용자 프로필 테이블과 일치하는지 확인하거나 매개 변수가 autoCreateTables false로 설정되어 있는지 확인합니다.

문제: "SQL Server의 사용자 인스턴스를 생성하지 못했습니다." 오류

WebMatrix 웹 애플리케이션이 SQL Server Express를 사용하고 Windows 7 또는 Windows Server 2008 R2에서 IIS 7.5를 실행하는 경우 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에 포함합니다.

문제: ASP.NET MVC 버전 3에서만 사용할 수 있는 Visual Studio IntelliSense 및 프로젝트 템플릿

ASP.NET 웹 페이지 설치해도 ASP.NET 웹 페이지 애플리케이션용 IntelliSense 및 프로젝트 템플릿과 같은 Visual Studio용 도구도 설치되지 않습니다.

해결 방법 Visual Studio에서 ASP.NET 웹 페이지 애플리케이션에 IntelliSense 및 프로젝트 템플릿을 사용하려면 웹 플랫폼 설치 관리자 또는 독립 실행형 설치 관리자를 통해 ASP.NET MVC 3 RC를 설치합니다.

문제: "<도우미 클래스를> 찾을 수 없습니다." 오류

베타 3으로 업그레이드한 후 도우미 클래스(예 Facebook : 클래스)를 찾을 수 없다는 오류가 표시될 수 있습니다. 베타 2부터 베타 3까지 도우미가 명시적으로 설치해야 하는 패키지로 이동되었습니다. 기존 사이트는 이러한 패키지를 포함하도록 업그레이드되지 않습니다. 여기에는 \My Documents\IISExpress 또는 \My Documents\My Web Sites 폴더의 사이트가 포함됩니다. 특히 도우미에 대한 참조 Twitter 가 포함된 내 사이트(WebSite1)에서 기본 사이트를 사용하는 경우 이 오류가 표시됩니다.

해결 방법
사이트의 모든 도우미에 대한 호출을 주석 처리하고, _Admin 페이지를 실행하고, 사용하려는 도우미가 포함된 패키지 또는 패키지를 설치합니다. 패키지를 설치한 후 도우미를 참조하는 줄의 주석 처리를 제거할 수 있습니다.

문제: Bin 폴더에 베타 3 ASP.NET Razor 어셈블리 배포가 호스팅 사이트에서 작동하지 않을 수 있습니다.

호스팅 사이트에 ASP.NET 웹 페이지 웹 사이트를 배포하고 ASP.NET Razor 베타 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 웹 사이트의 proxy> 요소(네트워크 설정) 를 참조하세요.

문제: "Microsoft.Web.Infrastructure.dll 로드할 수 없습니다." 오류

이전에 Razor 구문을 사용하여 베타 1 버전의 ASP.NET 웹 페이지 설치한 다음 베타 3 버전을 설치한 경우 Microsoft.Web.Infrastructure.dll 제외한 모든 적절한 어셈블리가 GAC에 설치됩니다. 결과적으로 Razor 페이지를 ASP.NET 실행할 때 Microsoft.Web.Infrastructure.dll 로드할 수 없음을 나타내는 오류가 표시됩니다.

이 문제는 클린 컴퓨터에 베타 3 릴리스를 로드한 경우 발생하지 않습니다.

해결 방법
제어판 ASP.NET 웹 페이지 제거합니다. 그런 다음 베타 3 릴리스를 다시 설치합니다.

문제: .NET Framework 버전 4를 제거하면 Razor 구문으로 ASP.NET 웹 페이지 사용하지 않도록 설정

.NET Framework 버전 4를 제거한 다음 다시 설치하는 경우 Razor 구문으로 ASP.NET 웹 페이지 사용할 수 없습니다. .cshtml 확장이 있는 페이지가 제대로 실행되지 않습니다. ASP.NET 웹 페이지 컴퓨터 루트 에 어셈블리를 등록합니다.Web.config 파일을 제거하고 .NET Framework를 제거하면 해당 파일이 제거됩니다. .NET Framework를 다시 설치하면 새 버전의 구성 파일이 설치되지만 ASP.NET 웹 페이지 어셈블리에 대한 참조는 추가되지 않습니다.

해결 방법 .NET Framework를 다시 설치한 후 Razor 구문을 사용하여 ASP.NET 웹 페이지 다시 설치합니다. 이렇게 하면 컴퓨터 루트의 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>

문제: Bin 폴더의 ASP.NET 어셈블리로 이전에 배포된 애플리케이션 환경 오류

배포하는 동안 ASP.NET 웹 페이지 어셈블리(예: Microsoft.WebPages.dll)를 서버의 웹 사이트의 Bin 폴더에 복사합니다. (배포하는 동안 또는 개발자가 어셈블리를 명시적으로 복사했기 때문에 이 문제가 자동으로 발생할 수 있습니다.) 그러나 베타 3 릴리스가 설치되면 특정 형식을 찾을 수 없는 오류와 같은 오류가 발생합니다. 이는 베타 3 릴리스에 대한 여러 ASP.NET 웹 페이지 형식이 다른 네임스페이스로 이동되었기 때문에 발생합니다.

해결 방법
배포된 애플리케이션의 Bin 폴더를 지우고 새 어셈블리를 폴더에 복사하거나 애플리케이션을 다시 배포한 다음 애플리케이션을 다시 시작합니다.

문제: 확장 없는 URL은 IIS 7 또는 IIS 7.5에서 .cshtml/.vbhtml 파일을 찾을 수 없습니다.

IIS 7 또는 IIS 7.5에서 다음과 같은 URL이 있는 요청은 .cshtml 또는 .vbhtml 확장이 있는 페이지를 찾을 수 없습니다.

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

이 문제는 IIS 7 또는 IIS 7.5에 대해 URL 재작성을 기본적으로 사용하지 않기 때문에 발생합니다. 가장 유사한 시나리오는 IIS Express를 사용하여 로컬로 테스트할 때 문제가 표시되지 않지만 호스팅 웹 사이트에 웹 사이트를 배포할 때 문제가 발생한다는 것입니다.

해결 방법

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

문제: 동일한 애플리케이션에서 웹 애플리케이션 프로젝트 또는 ASP.NET MVC 및 ASP.NET 웹 페이지 사용

웹 애플리케이션 프로젝트 또는 ASP.NET MVC 애플리케이션에서 ASP.NET 웹 페이지 사용하는 경우 WebPageHttpApplication을 찾을 수 없다는 오류가 표시될 수 있습니다.

해결 방법
이 오류가 발생하면 애플리케이션이 파생되는 기본 클래스를 변경합니다. Global.asax 파일에서 다음 줄을 변경합니다.

public class MvcApplication :  WebPageHttpApplication { ... }

값:

public class MvcApplication :  HttpApplication { ... }

이는 실제로 Razor 구문을 사용하여 ASP.NET 웹 페이지 베타 1 릴리스에 도입된 변경 사항을 반전합니다.

문제: 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 베타 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>

문제: Visual Basic에서 중간 신뢰에서 데이터베이스 및 WebGrid 도우미가 작동하지 않음

Visual Basic(.vbhtml 파일 만들기)을 사용하는 경우 애플리케이션이 Database 중간 신뢰를 사용하도록 설정된 경우 도우미와 WebGrid 도우미가 작동하지 않습니다.

해결 방법
완전 신뢰를 사용하도록 애플리케이션을 일시적으로 설정합니다.

SQL Server Compact

문제: "Encrypt" 속성이 인식되지 않음

SQL Server Compact 4.0은 클래스의 Encrypt SqlCeConnection 속성을 인식하지 못합니다. 데이터베이스 파일을 암호화하는 데 이 속성을 사용하면 안 됩니다. 이 속성은 Encrypt SQL Server Compact 3.5 릴리스에서 더 이상 사용되지 않으며 이전 버전과의 호환성을 위해서만 유지되었습니다.

해결 방법
클래스의 Encryption Mode SqlCeConnection 속성을 사용하여 SQL Server Compact 4.0 데이터베이스 파일을 암호화합니다. 다음 예제에서는 속성을 사용하여 암호화된 SQL Server Compact 4.0 데이터베이스를 Encryption Mode 만드는 방법을 보여줍니다.

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

기존 SQL Server Compact 4.0 데이터베이스의 암호화 모드를 변경하려면 다음을 수행합니다.

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

암호화되지 않은 SQL Server Compact 4.0 데이터베이스를 암호화하려면 다음을 수행합니다.

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

문제: Microsoft Visual C++ 2008 런타임 라이브러리가 필요합니다.

SQL Server Compact 4.0의 네이티브 DLL에는 Microsoft Visual C++ 2008 런타임 라이브러리(x86, IA64 및 x64), 서비스 팩 1이 필요합니다.

해결 방법
.NET Framework 3.5 SP1을 설치합니다. Visual C++ 2008 런타임 라이브러리 SP1도 설치됩니다. 다음 위치에서 라이브러리를 다운로드할 수 있습니다.

Microsoft Visual C++ 2008 서비스 팩 1 재배포 가능 패키지 ATL 보안 업데이트

참고

.NET Framework 2.0, 3.0 또는 4를 설치해도 Visual C++ 2008 런타임 라이브러리 SP1은 설치되지 않습니다.

문제: 컴퓨터에 .NET Framework를 설치하기 전에 SQL Server Compact가 설치된 경우 공급자 고정 이름이 .NET Framework machine.config 파일에 등록되지 않습니다.

SQL Server Compact에는 .NET Framework가 필요하기 때문에 .NET Framework가 설치되지 않은 컴퓨터에 SQL Server Compact를 설치할 수 있습니다. SQL Server Compact를 설치하기 전에 .NET Framework 버전 3.5 또는 4가 설치되지 않은 경우 SQL Server Compact 설치 프로그램에서 해당 공급자 고정 이름을 machine.config 파일에 등록하지 않습니다. machine.config 파일에서 SQL Server Compact 항목을 사용하는 모든 애플리케이션이 실패합니다. 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로 필터링 상자에 텍스트를 입력하고 검색을 클릭하면 아무 작업도 수행하지 않습니다. 보고서의 Group By 상태가 기본값인 문제 유형으로 설정된 동안 이 컨트롤이 작동하지 않기 때문입니다.

해결 방법 리본의 그룹화 탭에서 URL을 클릭하여 항목을 원본 URL로 그룹화합니다. 항목을 필터링하는 텍스트 상자와 단추는 이 상태에 있는 동안 작동합니다.

문제: IIS Express를 사용하여 WCF 애플리케이션을 실행하지 못합니다.

WCF 애플리케이션으로 이동하여 다음과 같은 오류가 발생합니다.

파일 또는 어셈블리 'Microsoft.Web.Administration, Version=7.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35' 또는 해당 종속성 중 하나를 로드할 수 없습니다. 시스템은 지정된 파일을 찾을 수 없습니다.

IIS Express 베타 릴리스는 기본적으로 WCF를 지원하지 않기 때문에 발생합니다.

해결 방법 다음 해결 방법 중 하나를 사용합니다(해결 방법 #2에는 Microsoft Windows Vista 이상이 필요).

  1. WebMatrix 설치 위치에서 Microsoft.Web.dllMicrosoft.Web.Administration.dll 어셈블리를 WCF 애플리케이션의 bin 디렉터리로 복사합니다. 기본적으로 WebMatrix는 시스템의 Program Files 폴더 아래에 있는 Microsoft WebMatrix 하위 폴더에 설치됩니다.

  2. Microsoft Windows Vista 이상에서 다음 명령을 사용하여 bin 디렉터리의 어셈블리에 대한 symlink를 만듭니다. (이 방법은 어셈블리의 복사본을 만들지 않는다는 장점이 있습니다.)

    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 베타 3에서 상승이 필요한 특정 작업을 수행할 수 없습니다.

WebMatrix 베타 3은 다음과 같은 상황에서 추가 구성 요소를 설치하는 것과 같이 상승이 필요한 특정 작업을 수행할 수 없습니다.

  • Windows Vista 또는 Windows 7에서는 관리자 권한이 없는 계정으로 로그인되고 UAC(사용자 계정 컨트롤)를 사용할 수 없습니다.
  • Microsoft Windows XP 또는 Microsoft Windows Server 2003을 사용하고 있습니다.

해결 방법
WebMatrix 베타 3의 대부분의 작업에는 관리 권한이 필요하지 않습니다. 이렇게 하는 경우 관리자 권한으로 작업을 수행하거나 다음 단계를 수행할 수 있습니다.

  • Windows Vista 또는 Windows 7에서 UAC를 사용하도록 설정합니다.
  • Windows XP에서 관리자 보안 그룹에 사용자를 추가합니다.

웹 플랫폼 설치 관리자 3.0이 설치되어 있지 않으면 웹 갤러리의 사이트 옵션을 사용할 수 없습니다.

해결 방법
Microsoft 웹 플랫폼 설치 관리자 3.0을 설치합니다.

문제: Windows Server 2003에서 IIS Express는 비관리 사용자에 대해 시작되지 않습니다.

Windows Server 2003에서 페이지를 시작하거나 IIS Express를 시작하면 IIS Express가 시작되지 않습니다. 웹 페이지의 경우 관리자가 아닌 사용자가 애플리케이션을 시작했음을 나타내는 오류가 표시됩니다.

해결 방법
WebMatrix 베타 3을 관리 사용자로 시작합니다.

문제: Google Chrome을 실행 옵션으로 사용할 수 없음

Google Chrome은 홈 탭에서 실행 아래의 브라우저 목록에 표시되지 않습니다.

해결 방법
일부 버전의 Google Chrome은 Windows의 기본 프로그램 기능에 올바르게 등록되지 않습니다. 해결 방법으로 Google Chrome을 시작하고, Google Chrome 사용자 지정 및 제어 메뉴를 클릭하고, 옵션을 클릭한 다음, Google Chrome을 기본 브라우저로 만들기를 클릭합니다.

문제: "외래 키" 대화 상자에서 기본 키 입력을 허용하지 않습니다.

외래 키 대화 상자에서는 기본 키 테이블에서 기본 키 이름을 입력할 수 없습니다.

해결 방법
이는 의도적인 것입니다. 기본 키 테이블에서 기본 키의 이름을 입력할 필요가 없습니다.

문제: "관계" 단추를 사용할 수 없습니다.

데이터베이스 작업 영역의 테이블 탭 아래에 있는 관계 단추는 SQL Server Compact 데이터베이스에 사용할 수 없습니다.

해결 방법
없음 SQL Server Compact는 테이블 간의 관계를 지원하지 않습니다.

문제: 매개 변수가 있는 SQL 쿼리가 예외를 throw합니다.

SQL Server Compact 4.0에서 매개 변수가 있는 쿼리의 매개 변수와 같은 SqlDbType 데이터 형식을 DbType 지정하지 않으면 쿼리가 실행될 때 예외가 throw됩니다.

해결 방법
등의 SqlDbType DbType매개 변수에 대한 데이터 형식을 명시적으로 설정합니다. 이는 BLOB 데이터 형식(imagentext)의 경우 매우 중요합니다. 다음과 같은 코드를 사용합니다.

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 베타 3에 대한 자세한 내용은 다음 웹 사이트를 참조하세요.