現在オフラインです。再接続するためにインターネットの接続を待っています

[BUG] ASP を使用して Web サービスのメソッドを呼び出すとエラーが発生する

この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
マイクロソフトでは、Microsoft Windows Server 2003 で実行される Microsoft インターネット インフォメーション サービス (IIS) 6.0 にアップグレードすることを、すべてのユーザーに強く推奨します。IIS 6.0 により、Web インフラストラクチャのセキュリティが大幅に強化されます。IIS のセキュリティ関連のトピックについては、次のマイクロソフト Web サイトを参照してください。
現象
Web サービスのメソッドを呼び出すと、次のエラー メッセージが表示されることがあります。
System.InvalidOperationException: Unable to generate a temporary class(result=1). error CS2001: Source file 'C:\WINNT\TEMP\gggcyckb.0.cs' could not be found error CS2008: No inputs specified at System.Xml.Serialization.Compiler.Compile() at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings) at System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings) at System.Web.Services.Protocols.SoapClientType..ctor(Type type) at System.Web.Services.Protocols.SoapHttpClientProtocol..ctor() at SDAccounts.swd_dotnetdev.Organizations..ctor() at SDAccounts.Contacts.GetContactInfo(Object Status, Object& ErrorString)					
原因
ASP.NET Web サービスでは、WebMethod を処理する際に、システムの Temp フォルダを使用する場合があります。要求を処理しているスレッドが、そのフォルダに対する読み取り/書き込みアクセス許可がない ID を使用している場合、エラー メッセージが表示されます。
解決方法
この問題を回避するには、Temp フォルダに対する読み取り/書き込み特権を ASPNET アカウントに付与します。ASP.NET Web サービスが WebMethod を処理する際、システムの Temp フォルダにアクセスするために最もよく使用される ID は、ローカルの ASPNET アカウントです。このアカウントは、ASP.NET アプリケーションが実行されるデフォルトのアカウントです。

ただし、アプリケーションで偽装を使用するように、Web.config ファイルで構成している場合は、いずれの呼び出し元の ID もスレッドで使用できます。この場合、呼び出し元となる可能性のあるすべての ID に、Temp フォルダに対する読み取り/書き込み特権が付与されている必要があります。最も呼び出し元となる可能性の高い ID はインターネット インフォメーション サービス (IIS) アプリケーションの匿名アカウント (通常は ISUR_xxx アカウント) です。スレッドでは IWAM_xxx アカウントを使用することもできます。
状況
マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。
プロパティ

文書番号:322886 - 最終更新日: 12/07/2015 11:04:04 - リビジョン: 5.1

  • Microsoft Web Services Enhancements for Microsoft .NET 2.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
  • kbnosurvey kbarchive kbbug kbpending KB322886
フィードバック