[FIX] Src 属性を使用したコード ビハインド ファイルが UNC 共有上でコンパイルできない

文書翻訳 文書翻訳
文書番号: 313105 - 対象製品
この記事は、以前は次の ID で公開されていました: JP313105
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
すべて展開する | すべて折りたたむ

目次

現象

Web フォームをコンパイルすると、ASP.NET でコンパイル処理が失敗に終わり、次の (またはこれに類似の) エラー メッセージが表示されることがあります。
コンパイラ エラー メッセージ: CS2001: ソース ファイル
'\\server\sharename\webform1.aspx.cs' が見つかりませんでした。
このエラーは次の条件に該当する場合に発生します。
  • コード ビハインド モデルが使用されている場合
  • そのページで Src 属性を使用して動的コンパイルを行っており、Src 属性の参照先ファイルが、リモート コンピュータ上の汎用名前付け規則 (UNC) 共有にある場合
  • Web.config ファイルで偽装が有効になっている場合

原因

この問題が発生するのは、ワーカー プロセスの ID でコンパイラが開始されたときにワーカー プロセスがリモート共有を読み取れない場合です。ASP.NET では、ページの読み取りに偽装トークンが使用されるため、ページの読み取りに成功します。

解決方法

この問題を解決するには、次のいずれかの方法を使用します。
  • ワーカー プロセスを実行するアカウントに、リモート共有へのアクセス許可を与えます。システム アカウント、またはネットワーク サービスを使用する場合は、コンピュータ アカウントにアクセス許可を与えます。

    コンピュータ アカウントにリモート共有へのアクセス許可を与えるには、次の手順を実行します。
    1. 該当する共有を右クリックし、[プロパティ] をクリックします。
    2. [共有] タブの [アクセス許可] をクリックし、[追加] をクリックします。
    3. Web サーバーの名前を入力し、[名前の確認] をクリックします。ボックスに $machinename と表示されますが、これはこの共有の [アクセス許可] ダイアログ ボックスの [共有アクセス許可] に表示される名前と同じです。
  • コード ビハインド ファイルに動的コンパイルではなく、プリコンパイルされたダイナミック リンク ライブラリ (DLL) を使用します。
  • コード ビハインド ファイルではなく単一ページ ファイルを使用します。
  • 共有へのアクセス許可を持つアカウントでワーカー プロセスを実行します。この構成を行うには、Machine.config ファイルの processModel 要素のユーザー名とパスワードの各属性を使用します。

状況

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。 この問題は、.NET Framework に含まれている ASP.NET 1.1、および .NET Framework 1.1 で修正済みです。

詳細

問題の再現手順

  1. Webform1.aspx という名前の .aspx ページを作成します。
  2. "@page ディレクティブ" に、次のいずれかのコードを使用します。
    <%@ Page language="c#"  Codebehind="WebForm1.aspx.cs"  Src = "WebForm1.aspx.cs" %>
    					
    または
    <%@ Page language="vb"  Codebehind="WebForm1.aspx.vb"  Src = "WebForm1.aspx.vb" %>
    					
  3. コード ビハインド ページを作成し、手順 2. で選択した "@page ディレクティブ" に対応する名前を付けます。
  4. コンピュータの Administrator の権限を持つドメイン ユーザー (domain\user) を追加します。
  5. 共有を作成してドメイン ユーザーのみにフル コントロール許可を与えます。
  6. インターネット サービス マネージャで Microsoft Internet Information Server (IIS) アプリケーションを作成し、接続先の [コンピュータ名] に domain\user と指定します。
  7. 手順 5. で作成した共有を参照先とするアプリケーションに、仮想ディレクトリを作成します。
  8. WebForm1.aspx とコード ビハインド ファイルを共有に移動します。
  9. Web.config ファイルを新規作成し、これに次のコードを追加します。
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.web>
        <authentication mode="Windows" />
        <identity impersonate="true" userName="domain\user" password="password" /> 
     </system.web>
    </configuration>
    					
  10. Web アプリケーションの仮想ディレクトリに Web.config ファイルをコピーし、IIS アプリケーションに追加します。
  11. ブラウザでページを参照します。

プロパティ

文書番号: 313105 - 最終更新日: 2014年2月24日 - リビジョン: 2.2
この資料は以下の製品について記述したものです。
  • Microsoft ASP.NET 1.0
  • Microsoft .NET Framework 1.0
キーワード:?
kbnosurvey kbarchive kbfix kbbug kbconfig kbdeployment kbnofix kbreadme kbsecurity kbweb KB313105
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com