私は偽装の下でASP.net 2.0サイトを実行しようとしていましたが、何かが間違っているようです。私はASP.Net IIS設定アプレットで私の変更をundid。Tempパスの設定方法。 Path.GetTempPath()によって返される値?
しかし今、私はこのエラーを
System.UnauthorizedAccessException: Access to the temp directory is denied. Identity 'MACHINE\ASPNET' under which XmlSerializer is running does not have sufficient permission to access the temp directory. CodeDom will use the user account the process is using to do the compilation, so if the user doesnt have access to system temp directory, you will not be able to compile. Use Path.GetTempPath() API to find out the temp directory location.
at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
at System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings, Evidence evidence)
at System.Web.Services.Protocols.XmlReturn.GetInitializers(LogicalMethodInfo[] methodInfos)
を立ち往生していますので、私は一時パスを変更しようとした - MSDNは、この値を導出する方法のような状態はありませんが。私はTEMPとTMP環境変数を設定しようとしましたが、それはそれにも影響しませんでした。それでも、これらの部分の周りのMordacのような管理ポリシーのため、ドライブとしてマップされているC:\ Tmpフォルダを指しています。
更新:この変更は遅れていたようです。 Path.GetTempPathは、これら2つの環境変数に設定された値iを表示するようになりました。
私は2つの管理ユーザーアカウントで実行しようとしましたが、同じエラーが表示され、エラーメッセージに管理者ユーザー名が記載されています。だから私はここで何が起こっているのか分からない... – Gishu
ASPNETユーザーがそこにファイルを書き込めるようにtemp dirのファイルセキュリティを変更しましたか? procmonの内容に基づいていることや、その管理者としてアプリケーションプールを実行している(つまり、偽装に頼っていない)ことが確実でない限り、問題が発生する可能性があります。残念ながら私は長い間、今オフラインにする必要がありますので、私はあなたがそれを賞賛するか、他の誰かが願っています! –