我的应用在某些时候使用 WebRequest 从自身获取页面。
这应该不是问题。它实际上在服务器上运行良好,这是一个具有中等信任的“共享”托管包。在本地,我使用基于中等信任的自定义安全策略,其中包括以下内容 - 直接从默认的中等信任策略复制:
<IP权限 类="WebPermission" 版本="1"> <连接访问> <URI uri="$OriginHost$"/> </连接访问> </IPermission>
违规行位于自定义 XmlRelativeUrlResolver 中:
public override object GetEntity( System.Uri puriAbsolute, string psRole, System.Type pReturnType )
{
return _baseResolver.GetEntity( puriAbsolute, psRole, pReturnType );
}
被请求的 url 位于本地主机上,与请求者在同一个应用程序中。这是堆栈跟踪的顶部。
在 System.Security.CodeAccessSecurityEngine.Check(对象需求,StackCrawlMark& stackMark,布尔 isPermSet) 在 System.Security.CodeAccessPermission.Demand() 在 System.Net.HttpWebRequest..ctor(Uri uri,ServicePoint 服务点) 在 System.Net.HttpRequestCreator.Create(Uri Uri) 在 System.Net.WebRequest.Create(Uri requestUri,布尔值 useUriBase) 在 System.Net.WebRequest.Create(Uri requestUri) 在 System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri,ICredentials 凭据) 在 System.Xml.XmlDownloadManager.GetStream(Uri uri,ICredentials 凭据) 在 System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri,字符串角色,ObjectToReturn 类型) 在 c:\flow\source\controls\DataTransform.cs:line 105 中的 flow.controls.XmlRelativeUrlResolver.GetEntity(Uri puriAbsolute, String psRole, Type pReturnType) 在 System.Xml.Xsl.Xslt.XsltLoader.CreateReader(Uri uri,XmlResolver xmlResolver)
有人在这里看到问题吗?
@Sijin:谢谢你的建议。发送到解析器的 url 基于请求 URL,我在调试器中确认访问 127.0.0.1 的站点会产生相同的结果。