Silverlight应用程序 - 服务URL无法处理IP地址

时间:2012-01-11 23:51:01

标签: silverlight

我有一个运行在单个服务器上的Silverlight应用程序,该服务器还托管用于数据访问的Web服务。这是项目中的服务参考。一个常见问题是有人使用IP地址而不是机器名称浏览应用程序。这会因为应用认为这是跨站点违规而中断。

要访问Web服务,我们创建一个System.ServiceModel.ClientBase,assign是web.config文件中的一个地址。因此在dev中本地是localhost:xxxx,而在生产中它是机器名称。或者我们可以将其设置为IP地址,但是每个人都必须使用IP地址转到应用程序。

这样做有好办法吗?一个问题是有些人在内部访问应用程序,其中机器有一个好名字,而其他人通过VPN访问它,他们可能需要使用IP。我希望两者都能工作。

2 个答案:

答案 0 :(得分:1)

仅供参考我有同样的问题。 silverlight应用程序和wcf服务在同一台服务器上运行,但是当使用ip地址与应用程序URL启动应用程序时,就会出现跨域问题。显然这些urls / ips没有在本地解析/匹配,因此对于silverlight应用程序,它们看起来像不同的域。我的应用程序作为应用程序运行,由于技术原因无法移动到iis网站的根目录,这是clientaccesspolicy.xml文件或crossdomain.xml正常工作所必需的。

我通过在服务器上的hosts文件中添加一个条目来解决它,其中包含域名和域名。这看起来有点奇怪,因为我们在服务器指向的IP地址和域/机器名称,但它的工作原理。

在hosts文件中本地添加此文件显然会将所有对ip地址的请求重定向到服务器 PRIOR TO 进行调用以获取silverlight应用程序或调用wcf服务,因此他们看起来是无论是使用IP地址调用应用程序还是服务,都是相同的。

希望这对未来的其他人有所帮助。

仅供参考 - 这不适用于虚拟机

我们使用虚拟机来实现某些功能,我发现这在从虚拟机运行客户端时不起作用。 VM管理器必须在传递之前对请求执行某些操作。我以为我会提到它以备将来使用。

答案 1 :(得分:0)

您是否尝试过创建clientaccesspolicy.xml文件?

http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx