尝试在System.Web.Hosting.UnsafeIISMethods.MgdGetSiteNameFromId读取或写入受保护的内存

时间:2009-02-24 22:35:56

标签: iis iis-7 interop

当我点击COM互操作ASP页面(调用托管的.NET代码)时,我得到了一个AV。这样的感觉与IIS 7 / Windows 2008有关。

谷歌无法解决这个问题。有什么想法吗?

尝试读取或写入受保护的内存。这通常表明其他内存已损坏。

   at System.Web.Hosting.UnsafeIISMethods.MgdGetSiteNameFromId(UInt32 siteId, IntPtr& bstrSiteName, Int32& cchSiteName)
   at System.Web.Configuration.ProcessHostConfigUtils.GetSiteNameFromId(UInt32 siteId)
   at System.Web.Configuration.ProcessHostServerConfig..ctor()
   at System.Web.Configuration.ProcessHostServerConfig.GetInstance()
   at System.Web.Configuration.ServerConfig.GetInstance()
   at System.Web.Caching.CacheMemoryPrivateBytesPressure.ReadConfig(CacheSection cacheSection)
   at System.Web.Caching.CacheMemoryStats.ReadConfig(CacheSection cacheSection)
   at System.Web.Caching.CacheCommon.ReadCacheInternalConfig(CacheSection cacheSection)
   at System.Web.HttpRuntime.get_Cache()

2 个答案:

答案 0 :(得分:1)

升级到Windows 7(和IIS7)之后我遇到了同样的问题。之前正在运行的WCF服务开始出现此错误。

为了解决这个问题,我进入了项目的Build属性(Project / properties / Build选项卡),并将Platform Targer更改为“x86”。然后问题就消失了。

答案 1 :(得分:0)

这不是一个答案,但只是说我的商店在Windows Vista(x64)和Windows Server 2008(x64)上都看到了相同的东西。当应用程序池配置为以64位模式运行时,来自ASP的第一个COM调用会产生类似的堆栈跟踪。

对我们来说真正奇怪的部分是它在第二次及以后的电话中消失了。所以它只在应用程序池回收后发生一次,然后似乎工作正常。

我们也无法解决此问题。