我的应用程序在某些点使用WebRequest从本身获取页面。从本地主机到本地主机的WebRequest:为什么它被拒绝?
这应该不成问题。它实际上在服务器上运行良好,这是一个“中等信任”的“共享”托管软件包。在当地,我使用自定义的安全策略基础上中等信任,其中包括以下—从默认的中等信任策略直接复制:
<IPermission class="WebPermission" version="1"> <ConnectAccess> <URI uri="$OriginHost$"/> </ConnectAccess> </IPermission>
出错行是一个自定义XmlRelativeUrlResolver:
public override object GetEntity(System.Uri puriAbsolute, string psRole, System.Type pReturnType)
{
return _baseResolver.GetEntity(puriAbsolute, psRole, pReturnType);
}
被请求的url在本地主机上,在与请求者相同的应用程序中。这是堆栈跟踪的顶部。
at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) at System.Security.CodeAccessPermission.Demand() at System.Net.HttpWebRequest..ctor(Uri uri, ServicePoint servicePoint) at System.Net.HttpRequestCreator.Create(Uri Uri) at System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase) at System.Net.WebRequest.Create(Uri requestUri) at System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri, ICredentials credentials) at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials) at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn) at flow.controls.XmlRelativeUrlResolver.GetEntity(Uri puriAbsolute, String psRole, Type pReturnType) in c:\flow\source\controls\DataTransform.cs:line 105 at System.Xml.Xsl.Xslt.XsltLoader.CreateReader(Uri uri, XmlResolver xmlResolver)
有人在这里看到问题吗?
@Sijin:谢谢你的建议。发送给解析器的URL基于请求URL,并且我在调试器中确认,在127.0.0.1上访问站点会得到相同的结果。
感谢您的建议。发送给解析器的URL基于请求URL,并且我在调试器中确认,在127.0.0.1上访问站点会得到相同的结果。 – harpo 2008-10-01 15:43:41