トップ回答者
実環境に発行して起動すると、コンパイル エラー メッセージ: BC31019:

質問
-
お世話になります。
歳の瀬も近づき、忙しいときですが、宜しくお願いいたします。
【開発環境】
OS:Windows 2000 pro SP4
ISS Ver.5
VS: Visual Studio 2005
【VS の開発用サーバー】
ウェブアプリを開発して、動作確認OKでした。
【発行】
VSのメニュー[ビルド]から、同一機の E:\Inetpub\wwwroot\ap\ に発行
【インターネットエクスプローラ】
http://localhost/ap/ をアクセスすると、インターネットエクスプローラに次のページが表示されて、動作しません。
------------------------------------------------------------------------------------------------------------------------
'/ap' アプリケーションでサーバー エラーが発生しました。
コンパイル エラー
説明: この要求を送信するために必要なリソースをコンパイル中に、エラーが発生しました。以下のエラーの詳細を確認して、ソース コードを修正してください。
コンパイル エラー メッセージ: BC31019: 出力ファイル 'C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ap\4a0a18e8\7cae016c\App_Web_default.aspx.cdcab7d2.qits0hjn.dll' に書き込めません: ディレクトリ名が無効です。
ソース エラー:
[関連したソースの行はありません]
ソース ファイル: vbc : 行: 0------------------------------------------------------------------------------------------------------------------------
【試みた対策】
「BC31019」でググッてみたところ、英語のページが幾つかヒットしたので、斜めに読んでみました。
ap ディレクトリに書き込めないので、ディレクトリを消して、再構築してみるとよいとあったのでしてみましたが、だめでした。
VS2005を消して、再インストールをするとよいとありましたが、ちょっと大変なことなので、試していません。
なにか、ヒントでもご存知の方は、教えてください。
よろしくおねがいいたします。
回答
-
日本語のmsdn libraryでも同じようなことが書かれていますね。
http://msdn.microsoft.com/ja-jp/library/85s7w197.aspx
まず、エラーメッセージで出ている"C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\"配下のフォルダにIISが書き込み可能なセキュリティ設定になっているでしょうか?手っ取り早い方法だとコマンドプロンプトから以下のコマンドを実行しなおすとか。
C:\Winnt\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
今Windows 2000環境が手元にないので、細かいところはわかりませんが、明示的にIISのアカウントに対して書き込み権限を追加するとか。 -
こんにちは。
'C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files'
ディレクトリ以下に対して、ASP.NET のワーカープロセスの ID となっているユーザー
(通常は ASPNET) が書き込み権限があることを確認すると良いと思います。
お役に立ちましたら幸いです。
-----------------------------------------
だどさん http://keicode.com/
-
IIS6以降ですと実行アカウントはNetwork Serviceになります。
あと、以下が関係しているかもしれません。
[PRB] インデックス サービスの実行中にコードに変更を加えるとアクセス拒否エラーが発生する
http://support.microsoft.com/kb/329065/ja -
こんにちは。中川俊輔 です。
KKamegawaさん、だどさん、回答ありがとうございます。
.NetFramework1.1についての情報なのですが、同じようなエラーメッセーが表示される現象についての技術情報がありました。
PRB: CS0013 or CS0016 Compilation Errors in ASP.NET Web Applications
http://support.microsoft.com/kb/825791/en-us
(機械翻訳の日本語が不明瞭なので英語版を紹介させていただきます
)
環境変数のTEMP,TMPに、アクセス権を設定したテンポラリフォルダを指定すると解決するようです。
.NetFramework2.0も同じ原因で発生している可能性がありますので、よろしければお試しください。
参考になると幸いです。
それでは!
この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。
コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。
すべての返信
-
日本語のmsdn libraryでも同じようなことが書かれていますね。
http://msdn.microsoft.com/ja-jp/library/85s7w197.aspx
まず、エラーメッセージで出ている"C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\"配下のフォルダにIISが書き込み可能なセキュリティ設定になっているでしょうか?手っ取り早い方法だとコマンドプロンプトから以下のコマンドを実行しなおすとか。
C:\Winnt\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
今Windows 2000環境が手元にないので、細かいところはわかりませんが、明示的にIISのアカウントに対して書き込み権限を追加するとか。 -
こんにちは。
'C:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files'
ディレクトリ以下に対して、ASP.NET のワーカープロセスの ID となっているユーザー
(通常は ASPNET) が書き込み権限があることを確認すると良いと思います。
お役に立ちましたら幸いです。
-----------------------------------------
だどさん http://keicode.com/
-
IIS6以降ですと実行アカウントはNetwork Serviceになります。
あと、以下が関係しているかもしれません。
[PRB] インデックス サービスの実行中にコードに変更を加えるとアクセス拒否エラーが発生する
http://support.microsoft.com/kb/329065/ja -
今回の環境は Windows 2000 ですから IIS 6.0 ではなく IIS 5.0 ですね。
インデックスサービスの件は存じませんでした。これは困った現象ですね。ディレクトリをインデックスから除外しないといけないですね。ありがとうございます!
-----------------------------------------
だどさん http://keicode.com/
-
こんにちは。中川俊輔 です。
KKamegawaさん、だどさん、回答ありがとうございます。
.NetFramework1.1についての情報なのですが、同じようなエラーメッセーが表示される現象についての技術情報がありました。
PRB: CS0013 or CS0016 Compilation Errors in ASP.NET Web Applications
http://support.microsoft.com/kb/825791/en-us
(機械翻訳の日本語が不明瞭なので英語版を紹介させていただきます
)
環境変数のTEMP,TMPに、アクセス権を設定したテンポラリフォルダを指定すると解決するようです。
.NetFramework2.0も同じ原因で発生している可能性がありますので、よろしければお試しください。
参考になると幸いです。
それでは!
この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。
コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。