内部网络上的Silverlight SecurityException,而不是外部网络

时间:2011-12-16 16:01:19

标签: silverlight cross-domain

我正在数据中心的服务器上托管Silverlight应用程序。我的客户端位于Intranet上,他需要应用程序才能连接到自己内部网上的服务器。

客户端的服务器也向公众公开,我可以让Silverlight应用程序与我的机器(很好的clientaccesspolicy.xml和所有爵士乐)很好地与他的服务器通信。然而,这对他不起作用。当Silverlight应用程序尝试从其Intranet后面访问自己的服务器时,会抛出一个模糊的SecurityException。

如果你是一个视觉人,这里有一个很好的情况图表:

Client can't access his own server with my Silverlight app

(绿色连接通过Internet,红色是失败的Intranet连接。)

我们都使用相同的URI来访问服务器,他将我的Silverlight服务器和他的内部网服务器都添加到他的“可信站点”列表中。

SecurityException如下所示:

System.Security.SecurityException ---> System.Security.SecurityException: [Arg_SecurityException]
Arguments: 
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=5.0.61118.00&File=mscorlib.dll&Key=Arg_SecurityException
   at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
   at System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClassa.<EndGetResponse>b__9(Object sendState)
   at System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<BeginOnUI>b__1(Object sendState)
   --- End of inner exception stack trace ---
   at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
   at System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result)
   at System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result)

我走到了尽头。它看起来像是一个跨区域问题,但同样,两个站点都处于相同的“可信站点”区域。我错过了什么?

编辑: 值得一提的是,他曾使用Fiddler来诊断问题。有趣的是,他的机器不检查clientaccesspolicy.xml文件,甚至从未尝试与服务器通信。

1 个答案:

答案 0 :(得分:1)

事实证明,客户端实际上在本地Intranet区域中拥有自己的服务器,而我的服务器在受信任区域中。他将我的服务器移动到本地Intranet区域,它开始工作。