Web Matrix と ASP.NET Web ページ (Razor) Beta 3 リリース Readme

Web Matrix と ASP.NET Web ページ (Razor) Beta 3 リリース Readme

2010 年 11 月 9 日

内容

概要

Microsoft WebMatrix Beta は、数分でインストールされる無料の Web 開発スタックです。 データベースとプログラミングのフレームワークに Web サーバーを組み合わせることによって、1 つの統合的な環境を実現します。 WebMatrix Beta を使用して、独自の ASP.NET または PHP Web サイトのコーディング、テスト、発行方法を効率化したり、WebMatrix Beta を使用して、DotNetNuke、Umbraco、WordPress、Joomla などの一般的なオープンソース アプリを使用して新しい Web サイトを開始したりできます。 WebMatrix Beta では、インターネット上で Web サイトを実行するのと同じ強力な Web サーバー、データベース エンジン、フレームワーク環境が使用されるため、開発から運用への移行がスムーズかつシームレスになります。

インストール

WebMatrix Beta 3 をインストールするには、Microsoft Web Platform Installer 3.0 を使用します。 Web プラットフォーム インストーラーをインストールしたら、それを使用して WebMatrix Beta 3 をインストールできます。

インストール中に問題が発生した場合は、「Microsoft Web Platform Installerに関する問題のトラブルシューティング」を参照してください。

アプリケーションの発行手順

アプリケーションの発行手順に関するページを参照してください

新機能、変更、および不明な問題

WebMatrix Beta 3 のインストール

問題: WebMatrix Beta 3 は、Microsoft .NET Framework 4 をサポートするプラットフォームでのみ使用できます

WebMatrix Beta には、.NET Framework バージョン 4 が必要です。 場合によっては、WebMatrix Beta インストーラーを使用すると、サポートされている構成セットの一部ではないプラットフォームにインストールしようとします。 特に、SP1 更新プログラムを使用しない Windows Vista では、WebMatrix Beta のインストールを開始できますが、.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 Beta 3 をインストールできません

回避策
Microsoft ダウンロード センターから Microsoft Visual Studio 2008 Service Pack 1 をインストールします。

問題: SQL Server Compact 4.0 のアセンブリの一部が GAC にインストールされない

SQL Server Compact 4.0 を 64 ビット コンピューターにインストールする際、そのコンピューターに .NET Framework 3.5 SP1 Client Profile しかインストールされていないと、SQL Server Compact 4.0 のマネージド アセンブリがグローバル アセンブリ キャッシュ (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 Service Pack 1 (フル パッケージ)

そのうえで SQL Server Compact 4.0 を再インストールします。

問題: コマンド ラインを使用して SQL Server Compact をアンインストールすることはできない

このリリースでは、コマンド ライン オプションを使用して SQL Server Compact をアンインストールすることはできません。

回避策
Windows コントロール パネルのプログラムと機能を使用して、Microsoft SQL Server Compact 4.0 をアンインストールします。

ASP.NET Web ページ

このドキュメントのこのセクションでは、Razor 構文を使用した ASP.NET Web ページのベータ 3 リリースに関する新機能、変更、既知の問題について説明します。

Razor 構文を使用した ASP.NET Web ページのベータ 3 の新機能

新規: "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 Web ページのベータ 3 の変更点

変更: "HrefAttribute" メソッドが削除されました

HrefAttributeクラスの WebPage メソッドが削除されました。 このヘルパーは、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 ページを使用したチュートリアル はじめにの「パッケージ マネージャーを使用したヘルパーのインストール」の説明に従って、別のパッケージとしてインストールする必要があります。

変更: メンバーシップ、ロール、セキュリティの種類が新しいアセンブリに移動する

次の型がアセンブリに WebMatrix.WebData 移動されました。

  • ExtendedMembershipProvider
  • SimpleMembershipProvider
  • SimpleRoleProvider
  • WebSecurity

変更: "TagBuilder" クラスがアセンブリに移動 System.Web.WebPages.dll

クラスは TagBuilder 、System.Web.WebPages.dll アセンブリに移動されました。 以前は、これは、ASP.NET MVC の一部であったアセンブリにありました。 この変更は、 クラスを使用するために MVC ASP.NET インストールする必要がないことを意味します TagBuilder

ただし、 クラスは名前空間に System.Web.Mvc 残っています。 クラス (たとえば、カスタム ASP.NET Razor ヘルパー) を使用 TagBuilder するには、名前空間を参照する必要があります (たとえば、コードに を追加 @using System.Web.Mvc します)。

変更: 要求の検証構文が変更されました。"Validation" クラスが削除されました

ベータ 3 リリースでは、個々のフィールドまたはフィールドのセットの検証を無効にするために、 メソッドを Validation.Exclude 呼び出して、検証から除外するフィールドの名前を渡すことができます。 ベータ 3 リリースでは、検証をバイパスするための新しい構文を使用できます。 Validationベータ3で使用される方法は削除されました。

注意

要求の検証を無効にしない場合、ユーザーが HTML マークアップをアップロードしようとすると (たとえば、ページ上のリッチ テキスト エディターを使用するなど)、Web サイトは、 危険な可能性のある Request.Form 値がクライアントから検出され 、ユーザー入力が受け入れられないなどのエラーを報告します。 要求の検証を無効にする場合は、ユーザー入力を手動でチェックして、ASP.NET Coreのクロスサイト スクリプティング (XSS) を防止することで、危険な可能性のあるマークアップやスクリプトが含まれていないことを確認する必要があります。

要求の自動検証を無効にするには、 メソッドを Request.Unvalidated 呼び出し、要求の検証をバイパスするフィールドまたは他の post オブジェクトの名前を渡します。 このメソッドを使用すると、および コレクション内のすべての項目のFormQueryStringCookies検証を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 Web ページに関する既知の問題

問題: メンバーシップ用のカスタム ユーザー テーブルを使用しているときに予期しない動作が生じる

ASP.NET Razor Web サイトのメンバーシップ プロバイダーを初期化するには、 メソッドを WebSecurity.InitializeDatabaseConnection 呼び出します。 (WebMatrix では、スターター サイト テンプレートには 、_AppStart.cshtml ファイルでこのメソッドの呼び出しが含まれています)。このメソッドの autoCreateTables パラメーターが true に設定されている場合 (既定では、スターター サイト テンプレートでは true に設定されています)、認識されないテーブル名がメソッド (2 番目のパラメーター) に渡された場合、メソッドはエラーをスローしません。 エラーがスローされずに、自動的にテーブルが作成されます。

これは、メンバーシップにカスタム ユーザー テーブルを使用し、間違ったテーブル名を メソッドに渡す場合に WebSecurity.InitializeDatabaseConnection 問題になる可能性があります。 指定したテーブルが存在しなかったとしても、既定ではメソッドからエラーが生成されません。新しいテーブルが作成されるため、アプリケーションは一見、正常に機能しているように見えます。 しかし、最終的には、カスタム ユーザー テーブル (とそのテーブル内のフィールド) に依存しているアプリケーション コードで予期しないエラーが発生します。

回避策
メソッドで渡される名前がメンバーシップ データベースの InitializeDatabaseConnection ユーザー プロファイル テーブルと一致していることを確認するか、パラメーターが autoCreateTables false に設定されていることを確認します。

問題: "SQL Server のユーザー インスタンスを生成できませんでした" というエラーが表示される

WebMatrix Web アプリケーションに SQL Server Express が使用されており、Windows 7 または Windows Server 2008 R2 で IIS 7.5 が実行されている場合、ユーザーのローカル アプリケーション パスを SQL Server が実行時に取得できないことを示すエラーが表示される場合があります。

回避 策 アプリケーションが実行される Windows アカウント (通常は NETWORK SERVICE) に、アプリケーションのルート フォルダーと App_Dataなどのサブフォルダーに対する読み取り/書き込みアクセス許可があることを確認します。 詳細については、「SQL Server Express ユーザーのインスタンス化と Web アプリケーション プロジェクトの ASP.net に関する問題」を参照してください。

問題: Visual Studio では、カスタム アセンブリ (DLL) の名前空間が自動的にインポートされません

Visual Studio のプロジェクトでカスタム アセンブリを使用する場合、それらのアセンブリで宣言されている名前空間は、デザイン時に自動的にインポートされません。 その結果、カスタム型への参照はデザイン時に認識されず、Visual Studio では認識されないとマークされます ("波線" を使用)。 この問題は、Visual Studio のデザイン時にのみ発生します。アプリケーション自体が正常に実行されます。

回避策
デザイン時に using 認識されないエンティティを参照する ステートメント (imports Visual Basic の場合) を含めます。

問題: Visual Studio IntelliSense およびプロジェクト テンプレートは ASP.NET MVC Version 3 でしか利用できない

ASP.NET Web Pages をインストールしても Visual Studio 用のツール (ASP.NET Web Pages アプリケーション用のプロジェクト テンプレート、IntelliSense など) はインストールされません。

回避 策Visual Studio で ASP.NET Web ページ アプリケーションに IntelliSense とプロジェクト テンプレートを使用するには、Web プラットフォーム インストーラーまたはスタンドアロン インストーラーを使用して、MVC 3 RC ASP.NET インストールします。

問題: "<ヘルパー> クラスが見つかりません" エラー

ベータ 3 にアップグレードすると、ヘルパー クラス (クラスなど) が見つからないというエラーが Facebook 表示されることがあります。 ベータ 2 以降、ベータ 3 以降、ヘルパーは明示的にインストールする必要があるパッケージに移動されました。 既存のサイトは、これらのパッケージを含むようにアップグレードされません。これには、 \My Documents\IISExpress フォルダーまたは \My Documents\My Web Sites フォルダー内のサイトが 含まれます。 特に、ヘルパーへの参照を含む個人用 サイト (WebSite1) で既定のサイトを使用すると、このエラーが Twitter 表示されます。

回避策
サイト内のヘルパーへの呼び出しをコメントアウトし、 _Admin ページを実行して、使用するヘルパーを含むパッケージまたはパッケージをインストールします。 パッケージをインストールしたら、ヘルパーを参照する行のコメントを解除できます。

問題: Beta 3 ASP.NET Razor アセンブリを Bin フォルダーに展開すると、ホスティング サイトで機能しない可能性がある

ASP.NET Web ページ Web サイトをホスティング サイトに展開し、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'.

これは、ホスティング プロバイダーがサーバーのグローバル アプリケーション キャッシュ (GAC) に ASP.NET Web ページ Beta 1 アセンブリをインストールした場合に発生する可能性があります。 GAC 内のアセンブリは、 Bin フォルダーにローカルにインストールされているアセンブリよりも優先されます。

回避 策 表示されているエラーが、プロバイダーのアセンブリのバージョンと自分のアセンブリの間の競合が原因であることを確認するには、ホスティング プロバイダーに問い合わせてください。 その場合は、ホスティング プロバイダーにサーバーの GAC 内のアセンブリを更新するように要求します。

問題: フィードなどの外部データをプロキシ サーバーから読み取る

サイトを実行しているサーバーがプロキシ サーバーの背後にある場合は、サイトの外部から取得された情報を読み取ることができるように、 Web.config ファイルでプロキシ情報を構成する必要がある場合があります。 たとえば、ヘルパーを使用する ReCaptcha 場合、ヘルパーは reCAPTCHA サービスと通信しますが、プロキシ サーバーによってブロックされる可能性があります。 同様に、ASP.NET Web Pages で使用されているフィード (パッケージ マネージャーによって使用されているフィードなど) にもプロキシ構成が必要となることがあります。

外部サービスの操作またはパッケージ フィードの操作で問題が発生した場合は、アプリケーションのルート Web.config ファイルに次の要素を配置します。

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

プロキシ サーバーの構成の詳細については、MSDN Web サイトの proxy> 要素 (ネットワーク設定) を参照してください<

問題: "Microsoft.Web.Infrastructure.dll を読み込めません" エラー

以前に Razor 構文を使用してベータ 1 バージョンの ASP.NET Web ページをインストールし、Beta 3 バージョンをインストールした場合は、 を除くすべての適切なアセンブリが GAC インストールMicrosoft.Web.Infrastructure.dll。 その結果、Razor ページ ASP.NET 実行すると、 Microsoft.Web.Infrastructure.dllを 読み込めなかったことを示すエラーが表示されます。

この問題は、クリーン コンピューターに Beta 3 リリースを読み込んだ場合には発生しません。

回避策
コントロール パネルで、ASP.NET Web ページをアンインストールします。 次に、Beta 3 リリースを再インストールします。

問題: .NET Framework Version 4 をアンインストールすると Razor 構文を使用する ASP.NET Web Pages が無効になる

.NET Framework Version 4 をアンインストールして再インストールした場合、Razor 構文を使用する ASP.NET Web Pages は無効になります。 .cshtml 拡張子を持つページが正しく実行されません。 ASP.NET Web ページは、マシン ルートWeb.configファイルにアセンブリ登録し、.NET Frameworkを削除すると、そのファイルが削除されます。 .NET Framework を再インストールすると、新しいバージョンの構成ファイルがインストールされますが、ASP.NET Web Pages アセンブリに対する参照は追加されません。

回避 策.NET Frameworkを再インストールした後、Razor 構文を使用して ASP.NET Web ページを再インストールします。 これにより、コンピューター ルートの 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 Web ページ アセンブリ ( Microsoft.WebPages.dllなど) のコピーが、サーバー上の Web サイトの Bin フォルダーにコピーされます。 (これは、デプロイ中に自動的に行われたか、開発者がアセンブリを明示的にコピーしたために発生した可能性があります)。ただし、ベータ 3 リリースがインストールされると、特定の種類が見つからないエラーなどのエラーが発生します。 これは、ベータ 3 リリース用に多数の ASP.NET Web ページ型が異なる名前空間に移動されたために発生します。

回避策
デプロイされたアプリケーションの Bin フォルダーをクリアし、新しいアセンブリを フォルダーにコピー (またはアプリケーションを再デプロイ) してから、アプリケーションを再起動します。

Issue: Extensionless URLs do not find .cshtml/.vbhtml files on IIS 7 or IIS 7.5

IIS 7 または IIS 7.5 では、次のような URL を持つ要求は、拡張子が .cshtml または .vbhtml のページを見つけることができません。

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

この問題は、IIS 7 または IIS 7.5 で URL の書き換えが既定で有効になっていないために発生します。 最も簡単なシナリオは、IIS Expressを使用してローカルでテストするときに問題が発生しませんが、Web サイトをホスティング Web サイトにデプロイするときに発生します。

回避策

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

問題: Web アプリケーション プロジェクトまたは ASP.NET MVC を使用し、同じアプリケーションで Web ページを ASP.NET する

Web アプリケーション プロジェクトまたは MVC アプリケーションで ASP.NET Web ページを使用していた場合 ASP.NET、WebPageHttpApplication が見つからないというエラーが表示されることがあります。

回避策
このエラーが発生した場合は、アプリケーションの派生元の基底クラスを変更します。 Global.asax ファイルで、次の行を変更します。

public class MvcApplication :  WebPageHttpApplication { ... }

この行を次のように変更します。

public class MvcApplication :  HttpApplication { ... }

これは、実際には、Razor 構文を使用した ASP.NET Web ページ の Beta 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 サイトのルート フォルダーで、 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>

問題: Visual Basic の中信頼でデータベースヘルパーと WebGrid ヘルパーが機能しない

Visual Basic ( .vbhtml ファイルの作成) Database を使用している場合、アプリケーションが Medium Trust を使用するように設定されている場合、 および WebGrid ヘルパーは機能しません。

回避策
完全信頼を使用するようにアプリケーションを一時的に設定します。

SQL Server Compact

問題: "Encrypt" プロパティが認識されない

SQL Server Compact 4.0 では、 クラスの プロパティがEncryptSqlCeConnection認識されません。 このプロパティを使用してデータベース ファイルを暗号化しないでください。 プロパティはEncrypt、SQL Server Compact 3.5 リリースでは非推奨となり、下位互換性のためにのみ保持されました。

回避策
クラスの プロパティをEncryption ModeSqlCeConnection使用して、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)、Service Pack 1 が必要です。

回避策
.NET Framework 3.5 SP1 をインストールします。 これにより、Visual C++ 2008 ランタイム ライブラリ SP1 もインストールされます。 ライブラリは、次の場所からダウンロードできます。

Microsoft Visual C++ 2008 Service Pack 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 フレームワークを必要とするため、.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 Service Pack 1 (フル パッケージ)
Microsoft .NET Framework 4.0 リリース (フル パッケージ)

に、4.0 SP1 SQL Server Compact再インストールします。

アプリケーションのインストール

問題: ユーザーの [マイ ドキュメント] フォルダーがネットワーク共有にリダイレクトされた場合、アプリケーションのインストールに時間がかかる場合がある

回避策
[なし] : アプリケーションのインストールには時間がかかる場合がありますが、正しくインストールされます。

アプリケーションの発行

問題: [宛先 URL] フィールドの前に http:// または https:// が付かない場合、発行後にサイトが機能しない可能性がある

[発行設定] ダイアログ ボックスで、展開先の URL が または https://http://始まらない場合、展開後にサイトが機能しない可能性があります。

回避策
サイトを発行する前に、[発行設定] ダイアログ ボックスの宛先 URL が または https://http://始まることを確認します。

問題: MySQL データベースの発行が失敗し、"データベースの発行に失敗しました。 これは、リモート データベースでスクリプトを実行できない場合に発生する可能性があります。

エラーは、さまざまな理由で発生する可能性があります。 このエラーが発生する理由の 1 つは、データベース スクリプトに単一引用符 (') が含まれており、コピー先の 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' またはその依存関係の 1 つを読み込めませんでした。 指定されたファイルが見つかりません。

これは、IIS Express ベータ 版リリースでは WCF が既定でサポートされていないために発生します。

回避 策 次のいずれかの回避策を使用します (回避策 #2 には Microsoft Windows Vista 以上が必要です)。

  1. Microsoft.Web.dll アセンブリと Microsoft.Web.Administration.dll アセンブリを WebMatrix のインストール場所から WCF アプリケーションの bin ディレクトリにコピーします。 既定では、WebMatrix は、システムの Program Files フォルダーの下にある Microsoft WebMatrix サブフォルダーにインストールされます。

  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 に 2 つのアセンブリをインストールします。 管理者特権のプロンプトから、次のコマンドを実行します。

    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 で、Administrators セキュリティ グループにユーザーを追加します。

Web プラットフォーム インストーラー 3.0 がインストールされていない場合、[Web ギャラリーからサイト ] オプションは無効になります。

回避策
Microsoft Web Platform Installer 3.0 をインストールします。

問題: Windows Server 2003 では、管理者以外のユーザーに対してIIS Expressが起動しない

Windows Server 2003 では、ページを起動したり、IIS Expressを開始したりすると、IIS Expressは起動しません。 Web ページの場合、アプリケーションが非管理ユーザーによって開始されたことを示すエラーが表示されます。

回避策
管理ユーザーとして 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 では、パラメーター化されたクエリで パラメーターに や などのSqlDbTypeDbTypeデータ型を指定しない場合、クエリの実行時に例外がスローされます。

回避策
や などの 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 Beta 3 の詳細については、次の Web サイトを参照してください。