我有一个 ASP.NET Web 应用程序,它调用 .NET DLL,而 .NET DLL 又调用 Web 服务。 Web 服务调用抛出异常:
无法生成临时类
(结果=1)。错误 CS0001:内部
编译器错误(0xc00000fd)错误
CS0003:内存不足
堆栈跟踪:位于
System.Xml.Serialization.Compiler.Compile(程序集
父级,字符串 ns,
XmlSerializer编译器参数
xml参数,证据证据)
在
System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[]
xmlMappings、Type[] 类型、字符串
defaultNamespace,证据证据,
XmlSerializer编译器参数
参数、装配装配、
哈希表组件)位于
System.Xml.Serialization.TempAssembly..ctor(XmlMapping[]
xmlMappings、Type[] 类型、字符串
默认命名空间、字符串位置、
证据证据)在
System.Xml.Serialization.XmlSerializer.GetSerializersFromCache(XmlMapping[]
映射,类型类型)位于
System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[]
映射,类型类型)位于
System.Web.Services.Protocols.SoapClientType..ctor(类型
类型)在
System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
我应该提到,这是我第一次在这台 PC 上执行这段特定的代码(我最近重新格式化/重新安装了 Windows)——这让我认为这是环境问题(相同的应用程序在我们的测试和生产服务器)。但我对原因感到困惑。
回答后续问题的一些其他详细信息:
- 这是一台真正的 PC(不是虚拟机)。
- 我在 IIS 7 上运行 .NET 3.5。我们的生产服务器是 IIS 6,但它之前在 IIS 7 上运行正常。
- 该电脑有 2 GB 内存,而且还有足够的空闲内存。
- 我没有更改任何 machine.config 设置,也没有更改任何与进程模型、编译、内存使用等相关的 web.config 设置。
- 本地 IIS_IUSRS 组具有“临时 ASP.NET 文件”文件夹的读/写权限。
- 我检查了应用程序池设置:私有内存和虚拟内存都设置为0(无限制)。
工作进程的内存使用情况:
- 我回收了工作进程以重新开始,然后点击应用程序中的 ASP.NET 页面...任务管理器显示已使用 22 MB。
- 然后,我遇到了进行 Web 服务调用的事件,内存使用量猛增至约 150 MB,然后趋于平稳,然后出现异常。
感谢您添加更多详细信息。
看看这个链接:http://support.microsoft.com/?kbid=908158 http://support.microsoft.com/?kbid=908158
这和你遇到的问题很相似。
它建议如下:
要解决此问题,请授予用户帐户对 %windir%\Temp 文件夹的列出文件夹内容和读取权限。
这个:
推荐:
为了避免此问题,请将 Temp 文件夹的读/写权限授予 ASPNET 帐户。当 ASP.NET Web 服务处理 WebMethods 时,最常用于访问系统 Temp 文件夹的标识是本地 ASPNET 帐户,它是运行 ASP.NET 应用程序的默认帐户。
但是,如果您已将应用程序配置为在其 Web.config 文件中使用模拟,则线程还可以使用任何调用者的身份。如果是这种情况,所有潜在的调用身份都必须具有 Temp 文件夹的读/写权限。可能的调用身份是 Internet 信息服务 (IIS) 应用程序的匿名帐户(通常是 ISUR_xxx 帐户)。该线程还可以使用 IWAM_xxx 帐户或 NETWORK SERVICE。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)