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

文書翻訳 文書翻訳
文書番号: 322886 - 対象製品
マイクロソフトでは、Microsoft Windows Server 2003 で実行される Microsoft インターネット インフォメーション サービス (IIS) 6.0 にアップグレードすることを、すべてのユーザーに強く推奨します。IIS 6.0 により、Web インフラストラクチャのセキュリティが大幅に強化されます。IIS のセキュリティ関連のトピックについては、次のマイクロソフト Web サイトを参照してください。
http://www.microsoft.com/japan/technet/security/prodtech/iis.mspx
すべて展開する | すべて折りたたむ

現象

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 - 最終更新日: 2007年11月20日 - リビジョン: 5.1
この資料は以下の製品について記述したものです。
  • Microsoft Web Services Enhancements for Microsoft .NET 2.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
キーワード:?
kbbug kbpending KB322886
"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